function [Obj, Con] = CEC10_CSO_Func(x, problem)

[ps, D] = size(x);
g = zeros(ps, 1);
h = zeros(ps, 1);
delta = 1e-4;

switch problem
    case 1
        O = [0.030858718087483, -0.078632292353156, 0.048651146638038, -0.069089831066354, -0.087918542941928, 0.088982639811141, 0.074143235639847, -0.086527593580149, -0.020616531903907, 0.055586106499231, 0.059285954883598, -0.040671485554685, -0.087399911887693, -0.01842585125741, -0.005184912793062, -0.039892037937026, 0.036509229387458, 0.026046414854433, -0.067133862936029, 0.082780189144943, -0.049336722577062, 0.018503188080959, 0.051610619131255, 0.018613117768432, 0.093448598181657, -0.071208840780873, -0.036535677894572, -0.03126128526933, 0.099243805247963, 0.053872445945574];
        o = O(1:D);
        p = x - repmat(o, ps, 1);
        g(:, 1) = 0.75 - prod(p, 2);
        g(:, 2) = sum(p')' - 7.5 * size(p, 2);
        f = -abs(sum((cos(p).^4), 2) - 2 * prod((cos(p).^2), 2)) ./ sqrt(sum(repmat(1:size(p, 2), ps, 1) .* (p.^2), 2));
    case 2
        O = [-0.066939099286697, 0.470966419894494, -0.490528349401176, -0.312203454689423, -0.124759576300523, -0.247823908806285, -0.448077079941866, 0.326494954650117, 0.493435908752668, 0.061699778818925, -0.30251101183711, -0.274045146932175, -0.432969960330318, 0.062239193145781, -0.188163731545079, -0.100709842052095, -0.333528971180922, -0.496627672944882, -0.288650116941944, 0.435648113198148, -0.348261107144255, 0.456550427329479, -0.286843419772511, 0.145639015401174, -0.038656025783381, 0.333291935226012, -0.293687524888766, -0.347859473554797, -0.089300971656411, 0.142027393193559];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        y = z - 0.5;
        f = max(z, [], 2);
        g(:, 1) = 10 - 1 / D * sum((z.^2 - 10 * cos(2 * pi * z) + 10), 2);
        g(:, 2) = 1 / D * sum((z.^2 - 10 * cos(2 * pi * z) + 10), 2) - 15;
        h(:, 1) = abs(1 / D * sum((y.^2 - 10 * cos(2 * pi * y) + 10), 2) - 20) - delta;
    case 3
        O = [111.17633500088529, 92.07880492633424, 417.9818592609036, 253.16188128024302, 363.5279986597767, 314.334093889305, 187.32739056163342, 240.4363027535162, 422.60090880560665, 327.63042902581515, 62.04762897064405, 25.435663968682125, 360.56773191905114, 154.9226721156832, 33.161292034425806, 177.8091733067186, 262.58198940407755, 436.9800562237075, 476.6400624069227, 331.2167787340325, 75.205948242522, 484.33624811710115, 258.4696246506982, 419.8919566566751, 357.51468895930395, 166.3771729386268, 47.59455935830133, 188.20606700809785, 184.7964918401363, 267.9201349178807];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        z_D_1 = z(:, 1:D - 1);
        z_2_D = z(:, 2:D);
        f = sum((100 * (z_D_1.^2 - z_2_D).^2 + (z_D_1 - 1).^2), 2);
        h(:, 1) = abs(sum((z_D_1 - z_2_D).^2, 2)) - delta;
    case 4
        O = [0.820202353727904, 5.260154140335203, -1.694610371739177, -5.589298730330406, -0.141736605495543, 9.454675508078164, 8.795744608532939, 9.687346331423548, -3.246522827444976, 6.647399971577617, 1.434490229836026, -0.506531215086801, 0.558594225280784, 7.919942423520642, 1.383716002673571, -1.520153615528276, -2.266737465474915, 6.48052999726508, -8.893207968949003, -3.528743044935322, 6.063486037065154, -4.51585211274229, 7.320477892009357, -8.990263774675665, 9.446412007392851, -6.41068985463494, -9.135251626491991, 2.07763837492787, 8.051026378030816, -1.002691032064544];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        f = max(z, [], 2);
        h(:, 1) = abs(1 / D * sum((z .* cos(sqrt(abs(z)))), 2)) - delta;
        h(:, 2) = abs(sum((z(:, 1:D / 2 - 1) - z(:, 2:D / 2)).^2, 2)) - delta;
        h(:, 3) = abs(sum((z(:, D / 2 + 1:D - 1).^2 - z(:, D / 2 + 2:D)).^2, 2)) - delta;
        h(:, 4) = abs(sum(z, 2)) - delta;
    case 5
        O = [72.10900225247575, 9.007673762322495, 51.86632637302316, 41.365704820161, 93.18768763916974, 74.53341902482204, 63.745479932407655, 7.496986033468282, 56.16729598807964, 17.71630810614085, 28.009655663065143, 29.36357615570272, 26.966653374740996, 6.892189514516317, 44.29071160734624, 84.35803966449319, 81.16906730972529, 92.76919270133271, 3.826058034047476, 7.231864548985054, 14.446069444832405, 46.49943418775763, 22.155722253817412, 69.11723738661682, 88.99628570349459, 58.74823912291344, 52.265369214509846, 47.030120955005074, 53.23321779503931, 5.778976086909701];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        f = max(z, [], 2);
        h(:, 1) = abs(1 / D * sum((-z .* sin(sqrt(abs(z)))), 2)) - delta;
        h(:, 2) = abs(1 / D * sum((-z .* cos(0.5 * sqrt(abs(z)))), 2)) - delta;
    case 6
        O = [-1.595515627742907, 7.633467047559741, -5.764100483472472, 8.103197246263033, -0.059515969417191, -0.737189363693078, -9.190862358160823, 4.22087353933443, -1.745435308213725, 9.499044614342985, 3.82068618551277, 2.569334886907409, 9.354368119489862, -0.852114934846258, 4.714177466874696, 6.775420647884232, -9.074204717422479, -3.760650327490145, -0.77805530989772, -7.487007842931314, 4.435061566086135, -6.952711886757461, -8.752326993212105, -2.411334215593357, -6.149894283287328, 1.049303005795593, -6.049093253116644, 0.950328133373404, 1.443084229017085, -0.163829799788475];
        M1 = [-0.427907650939441, 0.33300277992222, 0.158498600541243, 0.278765719516325, 0.222299060911893, -0.29474502069992, 0.370057970680927, -0.501453646373309, -0.280145449898877, -0.000651265117346; ...
                0.224165315142979, -0.261710409707008, 0.461868247797853, 0.088426027905637, 0.181816871315433, 0.373896699539441, 0.129585371011854, -0.381595698048136, 0.299800543352535, 0.48473910987024; ...
                0.53537800271001, -0.346919032183315, -0.245187528106815, 0.616142955927466, 0.041841873460541, -0.159575037377286, 0.105947745849249, -0.048303985087219, -0.328079281746379, -0.069709134117085; ...
                -0.416970506616096, -0.38848171660274, -0.094221759803838, -0.004397275883214, -0.237544237428415, -0.087984765871128, 0.123623297192573, 0.287283813863898, -0.330878858096249, 0.62837597392732; ...
                -0.173113815964007, -0.41172550558533, -0.499430088608083, -0.219823423370544, -0.134153464975979, 0.107615420480369, 0.438598883104602, -0.36754189637868, 0.291862561306911, -0.24605477533745; ...
                -0.238828717007495, -0.377132503962298, -0.036565581442029, -0.115315158370499, 0.298745579814478, 0.119889740767446, -0.652016881734357, -0.358800646641909, -0.326697807053803, -0.147917018157104; ...
                -0.430957521699839, -0.225924726595994, 0.119112314369716, 0.573035485004016, 0.085368416951095, -0.090379611695263, -0.158290455997733, 0.252439376164776, 0.529634351567821, -0.189541361218442; ...
                0.038944335110613, 0.082059986739041, -0.407974613233548, -0.116148517661389, 0.807124465614906, -0.104709855101281, 0.075051783295566, 0.217165356560047, 0.152079302286292, 0.271071947907043; ...
                0.158807462159919, -0.014816097582468, -0.081504338504322, -0.114995329704289, -0.203139388356386, -0.726380618422525, -0.310128975831262, -0.313282470241953, 0.332760870420427, 0.284154344591495; ...
                -0.081746794746219, 0.423796877332073, -0.504499564436954, 0.34367868531852, -0.228250720437377, 0.409151634256662, -0.27457871527628, -0.212617996823112, 0.090750526203861, 0.304532143452476];
        M2 = [0.023071358604305, -0.243539203031734, 0.187927245392782, 0.104249328959388, 0.260716866807433, 0.221583385806611, -0.252797010046177, 0.100936946167369, -0.211370612329087, 0.202097745021358, -0.109876100185841, 0.145097436798732, 0.085948612459317, -0.146422297038938, 0.190867385282501, 0.20021353815904, -0.216595920201605, 0.020808284235714, 0.116861967544113, 0.125705173410299, -0.12742261831595, 0.154492340007543, -0.02487562612683, -0.130654692719704, 0.041242046151542, 0.137578302481707, -0.113685553667173, 0.080918468352169, 0.231134631372462, -0.500691454466717; ...
                0.219813700073054, 0.281621212959571, -0.139807465673278, -0.110419741705267, 0.111375560917958, 0.18950250606953, -0.197263817723919, -0.120573644625486, 0.150326895316473, 0.181439845450315, -0.160383535661352, 0.119334369356968, 0.083421908456657, 0.205356036944096, 0.070741886265028, -0.010306823979388, 0.165894298461859, 0.286426975125101, 0.242550434036209, -0.257446539575199, -0.124841748949664, -0.284707849202713, -0.266045211188684, 0.149407650859431, 0.234265400495501, 0.173236453713421, -0.268903873738916, -0.039222449976035, -0.076974292905734, 0.007845772247666; ...
                -0.004556210660988, -0.185010374871545, 0.301301193684884, -0.10921707132215, 0.056649154772895, -0.319259584148745, -0.121951562968817, -0.114946550830203, 0.299113248329728, 0.245003405745115, 0.095158583529753, -0.055656948570354, -0.015031072793883, 0.179092320602946, -0.139122690964128, 0.015458176172072, -0.473892415411379, 0.248799402354716, 0.082952673098456, 0.113131317862851, -0.149011135793801, 0.130435444369303, -0.13561458613853, 0.11308864609885, 0.036204321234517, 0.087604692517882, 0.120848540211163, 0.19940636435041, -0.036809747154144, 0.273890394537969; ...
                0.084637445870772, 0.010234637261837, 0.0163505679041, -0.291324368670689, 0.139923837626945, 0.208455731467674, 0.078963492326544, 0.126450260433286, 0.165919594030767, 0.278689150458097, -0.098320280555702, 0.005769185393483, -0.092678642477698, -0.089451840157247, 0.094755103368655, -0.207537949603887, -0.030327606297323, -0.338124956876588, 0.16620777623828, 0.345468896633115, 0.232248040914797, -0.044083405261306, 0.19399037033832, 0.125847249224541, -0.089882822508969, -0.146623682416915, -0.377000734416181, 0.236892103614607, -0.02921365683848, 0.196331177937226; ...
                0.074312304236457, -0.225574447201836, 0.082165637933408, -0.033209964886626, -0.395153290195699, 0.237532238053277, 0.190561243631616, 0.246871613324737, 0.290083591667706, -0.167384565782564, -0.364144333118163, 0.077714490762667, 0.173586703218393, -0.06768099740148, -0.214558447436607, 0.177971891604503, -0.156757421164456, 0.218776801667123, -0.082457734254522, -0.021931934191503, -0.077019249390667, -0.053740971959229, 0.302519716272707, 0.01060499532639, 0.213434093287663, -0.040533349166557, -0.130510850208411, -0.042664408542468, -0.119334391939199, -0.047175447691726; ...
                0.059763888754179, 0.280448600610953, 0.168027393015553, 0.107898885039039, 0.078129132208644, 0.016725542148049, -0.068862345396511, 0.256062380545733, 0.354672938188716, 0.094803370580719, -0.070360138265119, -0.171709187603815, -0.217858919814539, 0.101783534628229, -0.3179989701311, -0.366489963591689, -0.062085337817464, -0.24855253685841, 0.021171334275235, -0.156319199253231, -0.134973123175041, 0.066947961696385, 0.003208576812388, -0.27795817533011, -0.038860789297872, 0.054899775422407, 0.085161477088784, -0.144095337095427, -0.046479992254913, -0.33696238445883; ...
                -0.366337733947864, -0.166407788441605, -0.324066002093473, 0.221420133757307, -0.019574569704521, 0.232911992313817, -0.029115729240295, -0.186487058187222, 0.397518752619068, 0.17518781618224, 0.051852566445361, -0.079220650943603, -0.166432725021838, -0.024221990224804, -0.023790397460643, 0.18954911307234, 0.250048077779269, -0.020194088105652, 0.181220139167084, 0.133993863209264, -0.151098227786211, 0.332313719703799, 0.058249344755879, 0.17404967391927, -0.068231608230426, 0.116051403905587, 0.031830502016625, -0.173898895181996, -0.035333966699982, 0.006553464834535; ...
                -0.089339028871793, -0.150644747151113, 0.333977718023231, -0.023290983832132, 0.071484031968692, 0.063242327007743, -0.00779727597403, 0.194454781194566, 0.086167326136549, 0.192374022340354, 0.350397911585836, 0.029740048674294, -0.018753009632293, -0.03019352628856, -0.07197528032568, 0.301158224734001, 0.17169318271056, 0.082918207464545, 0.270691037309726, -0.016451419802242, 0.239235646563372, -0.447247884813242, 0.023841342689988, -0.13108343259114, -0.09075884678349, -0.158370971426108, 0.136668222091284, -0.309761815654371, -0.109888826877523, 0.009150635095007; ...
                0.074888191567131, 0.083676205350129, -0.083179354547031, -0.066637896381512, 0.053095160511266, -0.316861186599257, -0.29440100906201, -0.244402988924601, 0.017206601507865, 0.124338014724408, -0.385746577427, 0.297328957427912, -0.230153572792195, -0.253203421162331, -0.208078674142006, 0.144353576321385, 0.064304889129675, 0.134789234354328, -0.138917258189494, 0.116963134427208, 0.05362753481884, -0.015827322352239, 0.127418324851312, -0.278973717947007, -0.229563349427393, -0.117365551566048, -0.110405189834349, -0.228624200829576, 0.006442191211637, 0.093722093619552; ...
                0.145179110717378, 0.296309987026553, -0.207923380305322, -0.014984827668181, -0.376306239493006, -0.079727038632315, 0.039301457650374, 0.280141080421287, -0.049843469703849, 0.338344539312377, 0.112751165836885, -0.200149157556593, 0.194010750834463, 0.039647110377517, 0.253986903567107, 0.169124043636955, -0.147638457634677, 0.090494694760029, 0.038999227519237, 0.044135580403696, -0.155065521821391, 0.04468936325164, 0.121062878126268, -0.173158624179059, -0.362179299761345, 0.168984801824032, -0.050803401252733, -0.124928370613716, 0.154932143045688, 0.107528702725028; ...
                -0.247769518547637, -0.013026391999973, 0.208366068872463, -0.01308241030252, -0.420850844853081, -0.015585757874256, 0.024416269182916, -0.15757671662769, 0.000937570811116, 0.114839339525928, 0.152748867215816, 0.400530911643258, -0.099591996137782, 0.046119070527813, -0.084057871760255, 0.037523835783196, 0.082944630739407, -0.250434288453272, -0.003108994546258, -0.308632885138753, -0.249962227016132, -0.103776460000353, -0.065811962324665, 0.008063951073233, -0.20928404905756, -0.059857929446445, -0.239070452324862, 0.326048730324964, 0.12085455969946, -0.081508052771155; ...
                0.029335186852684, 0.42479534654041, 0.024506562358727, 0.119627472308365, 0.185031279097699, 0.174363196232417, -0.13617821264296, -0.053577225314059, 0.158112469526072, -0.234896255576176, 0.140991780449312, 0.167717918159266, -0.147227348718694, 0.025588809721566, 0.162073030990437, 0.167886922952055, -0.163588516104328, 0.076857164260112, -0.056586802740237, 0.131435075006562, -0.249447709957678, -0.203617006385776, 0.42397887818139, 0.171046610279555, -0.053268384703754, -0.180711334111722, 0.264203012368296, 0.195834884778332, 0.054890300944545, -0.015768540027705; ...
                -0.118411599514207, -0.186573450160536, 0.104726198114066, 0.425554231240091, -0.142023526088077, 0.230649975647185, -0.259005051016549, -0.123471617679185, -0.021359056928563, 0.004900524854479, -0.046686074187159, -0.249158055609082, -0.085734101080989, 0.066568574763972, 0.051854545882703, -0.375910086806283, -0.015746972066708, 0.242445097805124, -0.209690288874655, 0.101360776912699, 0.125633999274207, -0.35060766970107, 0.062573716724893, -0.065368441587413, -0.152986434298628, 0.115992409521798, -0.151390459165938, 0.047882375964519, 0.195175237595396, 0.150178383140756; ...
                -0.0858624551914, -0.044206504461199, -0.024191833901419, -0.294463613925753, -0.136549581242564, 0.19063192188534, 0.009078296358467, -0.391384668907518, -0.126869407752262, 0.342114961361082, 0.09116986748678, -0.047152302046922, 0.059106641376471, -0.17573962390328, 0.153263704805923, -0.241727829980376, -0.210029426125613, -0.079980964940618, -0.222398072129181, -0.029578618396792, -0.173678756156788, -0.134473010768791, 0.152816363866217, -0.02684732428053, 0.177058808287171, -0.038354858709199, 0.205435928845276, -0.258590743909628, -0.316197162829926, -0.141824125756808; ...
                -0.174058638208522, 0.291199599238183, 0.266450303450098, -0.028890863183029, -0.001872306345431, -0.028383053613087, 0.39408931761541, -0.194729410189049, 0.084776372897711, 0.032277313861178, -0.248588278162597, -0.273699551170024, -0.170479550505463, -0.268762486929797, 0.06310137167014, 0.290307348954524, 0.012767532433376, -0.062935704572033, -0.09876386377763, 0.134130771563517, 0.05693674879587, -0.212147182889801, -0.207072437970811, -0.008386554559657, 0.115821199976077, 0.331790803979211, 0.031869629763129, 0.084758011153661, 0.16616334234557, -0.046598388159981; ...
                -0.122539813734875, 0.055062021475661, 0.192259726298495, 0.111778689877941, -0.097108288576286, -0.060635211302085, -0.19095906457098, 0.162096699758123, -0.089809961872459, 0.286607914398291, -0.463816666355172, 0.065667529388804, 0.110706918054021, 0.195570725883205, 0.127761253319044, 0.022293063803799, 0.09627643999163, -0.214289667440959, -0.068731650918356, -0.149376519308406, 0.176925422707419, 0.039652800851065, 0.057845509202043, 0.428075459635867, 0.017700445535024, -0.088604130882618, 0.375102294107653, -0.103580953343745, 0.107912132657264, 0.082089072712939; ...
                0.149871224860295, -0.053980409768776, -0.272294148054139, 0.212023004548897, 0.043390835529284, -0.212612952696657, 0.273609522182537, -0.222214200135187, 0.303225518533083, 0.137453813858163, 0.052721508158588, 0.103879953360173, 0.249853799417856, 0.062046913381309, -0.023484859395315, -0.033414850615502, -0.196847877163258, 0.007222208672822, -0.089375537303704, 0.014971153717819, 0.310981749028181, -0.190284764420785, -0.065522359741408, 0.188462632871619, -0.15983055420235, -0.180244626147409, -0.009963799685459, -0.005211451339253, 0.157429233733364, -0.43492164414894; ...
                -0.02591340911751, -0.019975433515814, 0.012110139396268, -0.213764132741262, 0.031510019724613, 0.105961018652306, -0.099189843238001, -0.145134916398449, -0.187599436771598, -0.220155014764647, -0.168521945543012, -0.19963534047124, 0.286316901994479, 0.038596872030396, -0.389762239991247, 0.012555284897496, -0.015937810042766, -0.087380574856683, 0.235991945782939, 0.15945701408713, -0.165817676129441, -0.168411073103876, -0.028299618426901, 0.23088808548431, -0.511396297338036, 0.148307223070328, 0.088388436173997, 0.00285611598734, -0.122340930318911, -0.131240403503548; ...
                -0.121864113916304, -0.014654550202084, 0.035376407571811, -0.212780253670548, 0.006149014177479, 0.021959947216556, 0.256860233208179, 0.213074272394272, 0.045473086570827, -0.042935595136984, 0.005139319533825, 0.418561398626004, -0.04319205091174, -0.147488524664772, 0.055288297966996, -0.437421558534106, 0.114963949182547, 0.309587665604864, 0.053645939267238, 0.217876758821124, -0.148693221159438, -0.004741436812794, -0.131874035298172, 0.121987204075402, -0.11244194637973, 0.133120482557454, 0.211878365468138, -0.201211182622069, 0.315903345963361, -0.003829799168322; ...
                -0.126123092831119, 0.313190363437176, 0.134166137039325, -0.130542816564377, -0.116589938908975, 0.085443534308242, -0.269947041942654, -0.078676889889736, 0.084414074333353, 0.000298119121542, 0.241097477550619, -0.013849219460857, 0.283258173803501, -0.356053350509168, -0.200521645839119, -0.079568162114918, 0.05507158321499, 0.203994934150072, 0.015633895463703, -0.144331577377909, 0.437697067593003, 0.297725584138964, 0.155346658581911, 0.091016739015444, 0.064175206558093, 0.131923563597529, -0.009483551236404, 0.127436711025714, 0.102565683180811, -0.072676817293255; ...
                0.213961481416887, 0.168198407737567, 0.31823576701544, 0.328503390360894, -0.091998612617176, 0.128969378833434, 0.146855728314558, -0.133451135740069, 0.000946498772983, 0.049030993239779, -0.008693974193085, 0.273316199428816, 0.186258255014889, 0.121673024025174, 0.104119891469482, -0.037688926878745, 0.181218379501068, 0.047504520560275, -0.067127317277936, 0.32602546833527, 0.073459597320917, 0.227094230667246, -0.141744489562412, -0.1193848907061, -0.147254533293153, 0.088613497608967, 0.046120322480013, 0.05408585177024, -0.491385369232803, 0.008514563314963; ...
                0.373877021735911, -0.087117560556513, -0.023885489008006, 0.077805222859825, -0.017871548495562, 0.26358837782502, 0.065575922657135, -0.282381989943325, 0.048000002005496, 0.042279234963912, 0.013088271901763, 0.111190815930443, 0.198510662128465, -0.014384124608641, -0.208222146457865, 0.01523138893421, 0.018334156916899, -0.282753596074817, 0.168979172096339, -0.025681854664133, -0.026652903779445, 0.003721711693469, 0.028352368844246, -0.279136067496355, 0.139205004101653, 0.058468745842254, 0.303325705259124, -0.010308333500278, 0.429095223108768, 0.323047787361305; ...
                -0.128405611991057, 0.016660592723202, 0.111243916639215, 0.239761127369325, 0.068309001097477, -0.203559841815938, 0.158468603206916, -0.160348595327825, -0.030915796524762, -0.191527960003824, -0.122161126369174, 0.10356665464739, 0.043537045650486, -0.123056805761277, 0.252735019348272, -0.172529851185191, -0.266956422045032, -0.077735151931771, 0.521721038081855, -0.269341636516775, 0.05644198608966, 0.01018864685953, 0.2936489196807, -0.016034616559579, -0.042418439509422, 0.191166234577746, -0.140756155739667, -0.217337765912142, -0.111357824431006, 0.113419671426429; ...
                0.153674075805796, -0.011022646124339, 0.202463916655671, -0.027051403687117, 0.176263010985745, -0.047382166151001, 0.08551446547199, -0.051324575366443, -0.084499219728522, 0.010230420504937, 0.236455917693281, 0.083743635403334, -0.023701061487849, 0.256429595445708, -0.173057601125983, 0.095209668504116, 0.045760519759508, -0.12440223123868, -0.346424595333292, 0.023767632461596, -0.041043070283435, 0.068357476777677, 0.291245664276342, 0.286275103859858, 0.036848691914435, 0.353118314841958, -0.331808862503714, -0.383349452504386, 0.143642268513429, 0.027583566795542; ...
                0.146903999643725, -0.041639008084258, -0.060690712445623, -0.014848846077282, -0.198902394077235, -0.189845616373261, 0.126415771427905, -0.093885811231035, -0.274755148739838, 0.192562550828159, -0.00955771584604, -0.060217337007873, -0.304124138067199, 0.228203284134865, -0.156997879239558, -0.069035357837482, 0.229570952908168, 0.204871495276006, 0.305087073758034, 0.148995312488614, 0.088976318796948, -0.02094647822294, 0.388157631106922, 0.002435434185887, 0.194961157508216, 0.138840097192971, 0.147179346529813, 0.254254871559064, 0.006342768764621, -0.263623294949303; ...
                -0.0608661505635, 0.146555580711974, -0.194475883468757, 0.207495722268346, -0.30527462848705, -0.086663219495567, -0.248167037721791, 0.1478305421615, -0.121344133341115, -0.070302024600429, 0.135923524987969, 0.199771371050369, -0.073677813979665, -0.106546327557882, -0.196109777527057, 0.015106503126995, -0.275067420372013, -0.263045499165718, 0.130739977649949, 0.389134209141338, 0.0631454997152, -0.184055648701562, -0.222864186591163, 0.149047004446891, 0.327616065803509, 0.131465125655398, -0.040368285105394, -0.149266070287538, -0.067695848219009, 0.007103603845905; ...
                0.268415194218636, -0.243954293115292, -0.166035019894207, -0.099067226244108, -0.023732611154401, 0.061484374174523, -0.117474015531197, 0.130388583389478, 0.151702336383109, -0.066938215583669, 0.035719870728927, 0.161868303295986, -0.278204057137361, -0.148328512373446, 0.141597766506655, 0.061626960392045, -0.060266032062573, -0.111704917464634, -0.140570303860242, -0.232333777262299, 0.222724407384168, -0.099926162466341, -0.011005404306214, 0.064346558576494, -0.221880346048088, 0.527072940265472, 0.248443216841586, 0.171747007553667, -0.213828101202187, -0.003499225562305; ...
                0.029190319041398, 0.137996386010025, -0.052671046600567, 0.082574050365387, 0.019675523236783, 0.406627243313423, 0.245141617385011, -0.011548010475965, -0.309052771850073, 0.120019443429705, -0.020626329277839, 0.051225179700079, -0.3803441957409, 0.051626888991824, -0.247774477788262, 0.078995410306428, -0.380978923839887, 0.19975295763172, 0.041039748721239, -0.203862088567774, 0.198405829717478, 0.184526042169612, -0.16248302586394, 0.123244321241256, -0.169482797451701, -0.168013830401126, -0.007352812240099, -0.092879407331974, -0.008329589503461, 0.087329377462898; ...
                0.228678742930217, -0.029649973176179, 0.210660606758725, -0.268904999831607, -0.35401954102632, 0.058820407990939, -0.185768311536065, -0.227653126947948, 0.155124303024404, -0.325611959978846, 0.005404486381564, -0.120351834967572, -0.249429618409322, 0.193520134425257, 0.317257502472855, 0.035244068819801, -0.029563667634032, -0.033909953634353, 0.141763650017426, 0.109239149374551, 0.15343276968306, 0.165975594209104, -0.140239055289629, 0.045756434259666, -0.05682102669939, -0.159759583212716, -0.030595452046069, -0.260893173081313, 0.174126057613149, -0.184055361204547; ...
                -0.454982071202166, 0.081028739628757, -0.15454679842635, -0.245309575415441, 0.070738655949495, 0.114407183940778, -0.000803285383987, -0.029585292203112, 0.034841728346049, -0.090378694457875, -0.087253833015541, 0.201658706322267, 0.107556168250323, 0.538785527750462, 0.027360507247175, 0.068052364992373, -0.162699590061949, -0.027702982041988, -0.062665317946852, 0.088925544163789, 0.287078549836071, -0.026926010195244, 0.059356754643412, -0.389446957988569, 0.022367979523514, 0.192399044103956, 0.050439485449618, 0.023364347605351, 0.017553373460626, -0.013236479997603];
        if D == 10
            M = M1;
        else
            M = M2;
        end
        M = M(1:D, 1:D);
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        y = (z + 483.6106156535) * M - 483.6106156535;
        f = max(z, [], 2);
        h(:, 1) = abs(1 / D * sum((-y .* sin(sqrt(abs(y)))), 2)) - delta;
        h(:, 2) = abs(1 / D * sum((-y .* cos(0.5 * sqrt(abs(y)))), 2)) - delta;
    case 7
        O = [-1.46823271282738, 47.51401860909492, -30.421056514069576, -7.707941671844303, -21.74698421666629, -17.88116387879569, 5.274442455807971, 18.71403753778708, -36.959734507345146, -20.72950462154263, 25.4701966548936, -25.439992885801573, 1.054563129830697, -31.556579857545657, -19.320382777005047, 17.16774285348282, 34.66536814401755, -31.803705714749462, -12.926898387712775, 25.489686517508602, -45.23000430753644, 36.31774710581284, -18.38690515559357, 34.86816378160691, -37.530671214167334, 19.288852618585977, 0.684612418754519, -12.636795982748637, 15.005454148879409, -40.468678588994315];
        o = O(1:D);
        y = x - repmat(o, ps, 1);
        z = y + 1;
        z_D_1 = z(:, 1:D - 1);
        z_2_D = z(:, 2:D);
        f = sum((100 * (z_D_1.^2 - z_2_D).^2 + (z_D_1 - 1).^2), 2);
        g(:, 1) = 0.5 - exp(-0.1 * sqrt(1 / D * sum(y.^2, 2))) - 3 * exp(1 / D * sum(cos(0.1 * y), 2)) + exp(1);
    case 8
        O = [-1.46823271282738, 47.51401860909492, -30.421056514069576, -7.707941671844303, -21.74698421666629, -17.88116387879569, 5.274442455807971, 18.71403753778708, -36.959734507345146, -20.72950462154263, 25.4701966548936, -25.439992885801573, 1.054563129830697, -31.556579857545657, -19.320382777005047, 17.16774285348282, 34.66536814401755, -31.803705714749462, -12.926898387712775, 25.489686517508602, -45.23000430753644, 36.31774710581284, -18.38690515559357, 34.86816378160691, -37.530671214167334, 19.288852618585977, 0.684612418754519, -12.636795982748637, 15.005454148879409, -40.468678588994315];
        M1 = [-18.785768809450733, 33.616954860437176, 26.882113915382682, -10.43306419742936, 0.944892894082476, -3.353896433259691, 3.535212733907637, 7.394276941396782, 7.790908752641235, 2.091292109983567; ...
                -0.38080580880289, 10.420967284673154, 9.347291913115678, -20.926490513724943, 11.4259031588907, 1.10563725749954, 36.87928250597037, -1.910339780463472, 7.56116849320932, -9.743066435789972; ...
                -12.341688082549489, 6.362199355273804, 8.248429939792464, 8.089256366417835, 0.069234506619011, 2.578624135957486, -0.497340218618186, -2.062722095484327, 1.430205147745766, 15.52200376094467; ...
                -17.00654251044467, -12.679306064055677, 51.65812051951116, -3.97661207806369, 3.934938475013658, -30.777202564613845, 6.146597147627116, -11.404959107806402, 12.694206030880832, -9.395143228117439; ...
                -5.484749154282662, -13.643476981518553, -20.8125786035429, 12.48063177681885, 0.844978205995699, 24.830393330514045, 33.83850518570256, -17.003569707093064, -5.293964367404844, 26.065703095424336; ...
                11.422878520470586, 10.221461943150496, -5.999478987400263, -8.935891602574142, 3.340791625151446, 3.924548854255449, -6.760571785727851, 14.016300477765046, 2.353396935795215, -15.957358828479556; ...
                14.1069797350053, -0.689797572922294, 25.92835826668488, -30.138271725378775, 12.953067028884863, -17.125782201118525, 19.122903237509483, 3.85021017121606, 14.44987126033593, -37.768641488073015; ...
                1.817162027385162, -4.52289774299815, 2.596064824368431, -3.077970366333548, 3.666238380627702, -3.142271967105208, -1.93910379576585, -1.132846020949443, -1.459397119228072, -4.385065305078107; ...
                17.05963501513677, -40.88734304067851, -9.04136854737176, 9.207816613351653, 2.483559081696921, -3.135238286666343, -0.515970843448524, -10.448164970351954, -3.97908386413912, -5.010151763870892; ...
                -2.100410473384162, 4.285743492212902, 18.13880373052391, -5.569156622351854, 0.020414928764168, -5.531568307180828, 1.750746232557792, 2.018382353850689, 8.96737078655512, -3.593654241962948];
        M2 = [2.511190264603399, 8.257741094092125, -4.576972024334265, 11.663051871013478, 1.839271199160904, -3.930477981638431, 6.381869129516557, 5.554163663846647, 3.792259995720394, -8.119579509114208, -6.749873116676933, -4.16744839268803, -5.247229107097693, 4.380091021522936, 1.636265206648646, 1.545744455341335, 6.729651169519672, -10.841704025647012, 5.27133366266056, -7.315142457952093, 5.586455189183544, 0.134360209805352, -4.757951297029205, -7.494064226166734, -5.71422876353246, -3.494974588660678, 16.86892010541546, -6.058600435639238, -11.353403083342686, -1.092357620889664; ...
                -1.176252081542598, 0.194672319059377, 9.262321627779777, -4.877620455960017, -3.013825305151295, 4.138941347418219, -4.381399078195643, -1.095599959738453, 3.362553950833766, -2.415178728944297, -6.861613142354518, -0.005940467288075, 2.135933445957106, -0.307275749657439, 9.502954614655595, 3.789220991977143, -2.76964275770075, 2.672716708411572, -3.374116812054481, -2.041106775198442, -3.340247070143979, -0.837499094352104, -5.259049047845686, -1.521493877085425, 3.560245065816806, 0.587849049777596, -8.24965720380312, 1.577881184618359, 2.56392435402041, 1.537958604481863; ...
                -1.308581228315848, -2.050371351098398, -3.874959824774145, -2.136018990593701, 0.425374281070453, 3.043654044666869, 2.852463840006697, -4.609692730685587, -2.676989994934014, 0.018654380314467, 4.1843245155883, -2.941454921101105, -9.0702547942116, -2.890167502434176, -6.517087530456076, -6.458220473167814, 5.214757843970958, -5.672828398157034, -1.291826775778004, -0.425237758250728, 2.004256913177237, 7.010207042020759, 3.245852998964355, 0.975852195193769, 1.406362603904871, -2.052462316198574, 2.872078581244381, 2.445851054572349, 1.108924529459803, -0.260629199129536; ...
                -0.691301322822554, -1.994532314862069, -8.604754485993125, -2.97610726321536, -2.546281717050659, 0.13089272819699, -2.095263510257371, 3.356968437392792, 0.259978867749323, 5.401823223841656, 3.061295803499265, 1.403978462555566, 3.459625904755164, 0.875144781306571, -4.037867043038509, 2.69814135487501, -1.046480563223284, -0.162120818498023, 3.972120681919849, -0.360095886115473, -3.590431022975543, 1.135744786203014, 6.085551336331358, -0.306597750598646, -2.349583036995845, 3.903939972739528, -1.48181865824383, -2.878395159465752, 7.258503538363769, 4.796644771310021; ...
                -0.444232081955838, -3.571385678786192, 13.286045625307453, -12.839633153682575, -4.489679872696604, 7.869013641543565, -1.965105477391064, -8.636636350365924, -0.094822649845242, -10.673493697992319, -12.53156986402604, -1.854979185138595, -4.845831775303889, -3.303193299843544, 14.504105531464209, 2.590044768433951, -6.135686158996087, -4.270904315841696, -6.861683086853831, -2.744870140116196, -5.102676391316569, 5.943125003510186, -8.766966677691988, 2.000662359536807, 0.48220557102434, 7.450887387478847, -10.45013256174983, 3.625933262996068, 4.179177543735097, 3.98247679713907; ...
                -10.464299208072154, -0.185820260985436, 6.552041396672776, -5.911945191669922, 8.168937620030086, -10.982208830632558, -3.00135846456146, 2.912065997677753, 2.671937505436929, -3.256558888247419, -1.010981945614573, -8.18916926806801, -12.001606012082647, 0.565140546704374, -6.816130902986662, 7.034212706943163, 12.40601107576485, -14.537675875626526, 1.401546347401862, 0.070761477781216, 5.173018588042309, 17.500331178638167, 3.097673254889692, -4.026635320023784, 3.007819170833911, -6.986787465181084, 6.394195915881141, 3.687826212758699, -10.500866576776128, -13.151879796730649; ...
                -5.781123825040053, -4.695427919915561, 9.384139425829048, -7.575211154097536, 8.514278328525183, -5.720630545110835, -3.828493595935516, 5.90998861394398, 0.148907769173485, -0.631185579095166, -7.572076478194538, -3.770557393047349, -8.178577514209056, -5.098256869553833, -12.07105725371895, 1.248737932444238, 0.478544192523777, -8.678825875969533, -0.946209858630089, -0.78972756845699, -8.64978321329506, 2.485419664365408, 12.153488342644684, -3.062242328783848, -0.170370275829816, -2.093524789628705, -5.15404262324049, 4.508277504607992, 1.61064781893081, -3.274879887486953; ...
                2.268818310206689, 7.300452401745146, -4.331575628327129, 10.74428874720899, 0.15049273777556, -0.522703831910356, 6.686183057924437, 3.782219973575128, 2.188704155720839, -8.966284106856413, 7.937092834912006, -1.31567415453634, -3.395220022143096, 1.559847175500902, 2.78883479224772, -2.138994752636062, 8.323858134206022, 1.103349691459627, 2.080995858068952, 3.671907915458957, 10.73018786831511, -0.786574921144261, -12.077147983799486, -3.200483300835418, 1.964680859010843, -2.657000417145831, 12.549412268552729, -5.048053145262655, -8.92560318109584, -3.291078633192861; ...
                0.041055194191982, 4.198164286592344, 0.380892004577647, -8.23942251831774, 4.779957612796264, -3.478785140983899, -4.340229693544734, -1.26961685769858, 6.146810236016467, -3.071864805992567, 0.971337912956829, -5.896120164000506, -0.757550831858382, 0.878200934289778, -1.532518943062243, 5.844371522790389, -0.837014728066397, -3.907278737140878, -2.030173016623314, 3.202676786182734, 1.470137096717735, 6.858775309836105, -5.751687072684216, 2.261109122092457, 5.446233047509159, -0.994575214031629, -4.198066474981203, -0.916283719062444, -4.341766414322003, 0.660003095340524; ...
                -4.758805234887069, -1.249096368305273, 5.230241683696193, -19.44236789411332, 3.990165558570265, -5.21678532927235, -4.960118855176376, 2.113664727176411, 0.365246740004055, 3.670941659701974, -1.914288039871711, -6.094333718753953, -2.682967627659987, 1.227422326532798, -9.433645672535167, 4.96643787530529, -3.616907241245708, -0.145552345328748, -2.280394788413511, 2.265409089297554, -5.317818474692691, 4.356958717932082, 9.75139488271248, 2.184418024240871, 4.551729219908339, -3.203937519303825, -8.161877539527412, 9.881964507838315, -0.942679393999977, -4.09075977260806; ...
                5.895714456877837, 5.673958378336709, -7.551189095277389, 8.6763663921392, -8.74212847286295, 7.876941413449155, 6.186314942878492, -1.385292259378321, 2.339350501494244, -7.303402814099851, -0.620345906721456, -3.21480044327725, -0.528558678306147, -0.327651725159052, 6.60017678920534, -4.030480514390237, -2.74819741682516, 1.131719959794813, 4.041615304275, -3.807276819902737, 7.174795405973731, -7.105910692661075, -16.16824790535485, -8.490742807482299, -1.205275569694925, -3.213783451897369, 10.19460083362542, -8.1537702193513, -3.34614228867147, 6.852576635102674; ...
                5.050755100515472, -1.015084166538332, -4.488951762662663, 3.071909362047136, -6.309214790805194, 4.607171586689359, 0.518771985931275, 2.576207604994254, -2.538951540887637, 3.871170428002043, 0.86099787829018, 9.333192517131101, 3.898241746958841, 2.045637143082407, -4.632172666627585, -3.251052343878506, -10.340844584872428, 9.938362935470167, 2.681875064667896, -0.30928871960663, -3.553804690623363, -11.909220170048043, 3.407795649838816, -0.852234992909218, 1.470543694236073, 0.018651383236502, -0.400939937078999, 1.006604199340888, 5.546567833598792, 8.936287451220219; ...
                -2.296736642073308, -7.507685960269931, 3.878804185286892, 1.927870783876082, 8.606052457582582, -4.902250427177561, -0.369415251862622, 3.771105898431047, -4.497236148553519, 6.92064424996612, 6.555606653106257, 3.979481264635631, 0.551670017289274, -1.250380372234189, -11.577926205347564, 0.98949362466787, 4.643449205576342, 0.039903009834915, 2.717889467266028, 2.628829050189848, -1.391097858187011, 2.040534828877561, 14.571897255676616, 1.64579970252636, -0.601128848469179, -0.840404796582696, -1.463197992681945, 3.202376802222665, -1.671176838446732, -3.3759766251534; ...
                -3.937515676606634, -3.139929919295693, 7.06320923587761, 1.809248475068868, 8.870247836692679, -7.116279757514643, -0.561569800957993, 1.607623766047816, -0.442980337701897, -5.392629763518957, 3.253312934476978, -0.53910491395161, -7.500926900397016, 0.980573085142957, -5.634247758036995, 2.236908157606175, 3.147822704551946, -5.937762475731414, 0.887239059660158, 3.778662703078195, 4.579851636624116, 9.68224407023739, 0.005007990083924, -2.066608587954049, -2.840100747113819, 1.07267047086035, 6.107120400203828, -2.014818439278602, -7.165823950693442, -9.272074819149603; ...
                -2.680240010855875, 0.356004349959002, -0.414456907621788, -0.067764618278143, 5.320643303727243, 0.737875437883548, 1.213668435898487, -3.145814327985767, -2.507697183673514, 2.536104038824088, 3.558431317438912, 2.131159153330951, 3.764201252276733, 0.816204397371172, -4.632956423959657, 0.184120289127522, 1.217433374070159, -4.036068485529014, 2.258556949877698, -0.910082542366675, 3.754187256312381, 7.457650756177197, 1.456847256376522, -1.608612250250221, -0.757648771963665, 3.790322347324032, 0.887040099051261, -6.027791111032598, -0.328191702726934, 0.866002766609515; ...
                6.578208237675698, 0.818410293291321, -9.288863917296439, 22.14413550757907, -5.223269252930489, 1.804141126348005, 6.924767448007314, -2.776780120617464, -2.494384185627731, 4.743636200841757, 2.69082215234061, 6.088855334101281, 0.981039450131136, -0.123672950299567, -0.140131828740133, -13.797914058713273, -1.914030716314594, 1.35605332601434, 2.48584096184779, -2.669304324669153, 2.289369793279759, -12.59957022859263, 0.93847348962723, -3.000750651813473, -6.748464919761018, -2.998991813272391, 7.50927404965129, -4.712789813740673, 2.583974262309686, 4.259407321635679; ...
                -4.302432019312597, 1.030219160973822, -0.035401401034044, -3.864603659100286, 11.181713062447539, 1.799128842154124, -4.632382202673897, -2.780991517575134, -2.531316968742212, 10.165545659183975, 1.550622641761506, 5.402782921171298, 7.066734336942432, 3.559465053224369, -7.838510786198628, 0.872794527931054, -6.729399256798964, 1.851943659950421, -3.17302307338725, 0.303477456308984, -7.294328632117977, 0.431243357642238, 12.108553118909567, 2.785512313731942, 3.951422589853138, 5.216571541524427, -14.01807799640241, 3.680618250481408, 10.312528175880152, 9.072426201364811; ...
                -5.532986492249091, 1.368157626742091, -2.996278911375891, 1.180587738377175, -1.172736098947577, -3.033440537456964, 0.240827440148848, 1.274554856316978, 3.664070614586986, 1.450239057462672, 0.43774922918318, -5.139121137322196, -2.184239731700786, -1.722673663384784, 5.003903006525603, 1.555677376370723, 4.592628073610951, 0.031529946446351, 1.962038675057533, 1.311519327333439, 2.97144042923956, 4.358628571380574, -3.02091040718656, -2.026289674016738, -2.179100342988682, 0.199561404454555, -0.642268764969934, -0.48430217469127, 0.867697193885426, -3.428256695897337; ...
                4.749688683748538, -3.013096235466324, -0.896473471506158, -5.404408901826174, 3.25190012448197, 4.700501169041437, -0.485841922084629, 2.129019854577554, -5.743986607455017, 5.05072704099386, 5.290426760843522, 10.017074714718186, 4.109783454482344, -2.171588999232304, -9.143973237995885, 2.158096752256321, -4.288300573083361, 8.440796859622568, 0.622933708201643, 0.366857770589574, -5.372666211859802, -6.422211641960874, 12.41021882450194, 3.749357041671196, 2.769912683036556, 3.508222243674678, -5.740173772592829, 6.606652001961278, 5.630677773801195, 6.253155297611987; ...
                4.559034813600619, 0.191335026648024, -9.72469888506327, 16.676435885179576, -11.815244699143054, -2.963619615334862, 2.644195062564698, -3.504534753584204, 1.539473850852911, 3.24795330924284, 4.136178478443613, -1.415042231009744, 0.180777361594801, -2.516794720186608, 6.160828524988144, -6.794575512958723, 0.075817729728995, 0.72736717628741, 1.668305542072184, 1.253458327957929, 7.270581180009739, -5.020680731171347, -10.710260791368778, -3.482314899976028, -3.159956937857408, -5.264233710547034, 7.244641579264396, -10.641144576600027, -0.028015125221679, 0.21956976936331; ...
                -2.551308504381034, -5.624763316256503, 5.82275011984547, -18.83984795424589, 2.287665332808314, 3.202650930764413, -0.143157181428193, -1.939337105017224, -7.297486396599838, 4.714811455331595, -2.285923849103187, 1.571914512358247, 1.18868883861133, 0.665125048665022, -3.62112489105088, 7.315055227559002, 2.59208112683563, -3.604968061282964, -1.269251512788574, -4.603628537664914, -6.186864603084382, 8.62584019419564, 15.640620254332642, 9.339712043883617, 0.70056492461347, 8.033185101455041, -8.984569662115023, 8.756788125840803, 3.000294638756253, 1.55270194363742; ...
                -3.861290375479539, -4.675448372631536, 9.251215593601152, -23.607840924556356, -8.695565550492798, -2.989076129194713, -4.739435400680438, 2.835678457877207, -0.098166653883445, -12.599368055638564, -10.371683803332736, -6.880266107606954, -13.323520170751154, 0.836643098136934, 5.174040794619552, 10.49263721553011, 6.802053133291294, -6.116168624020712, 0.612168202208346, -1.561678744412428, -2.961017400369882, 14.555633724082611, -2.408921040101399, 4.164763222501917, -1.288537113083328, 0.52492159991554, -0.419743809901388, 6.847306921165118, -2.417811780641292, -7.702891475003848; ...
                4.161137142387705, 1.482037717792366, 1.287113176047423, -11.780576083757202, -13.704438843176279, 2.252970644465878, -4.628978648000722, -8.44852567895537, 4.501241923053804, 3.218082210067639, -9.096692746700437, -6.359766478822383, 2.458766877052462, 2.747239663468253, 11.352826871439879, 1.690071756894771, -4.94464758404481, 1.287478245120863, -5.514465163301222, -0.436320463384376, -2.460885613501708, -2.766872615896895, -5.244256957948294, 3.839764805067356, 1.974486773795782, -3.850467595501656, -5.719184031653332, 3.112555194710462, 2.191998679485594, -0.13026077572474; ...
                2.105310692725196, 0.544816987896791, 1.846346039423678, -0.509784805488332, -8.19139781918348, -0.226849791351708, -3.085179788781892, -5.699211118481947, 3.293594390108838, -2.909444711189409, -7.764958328853763, -1.166897030507534, 3.020313808115756, 6.799166924533074, 10.7746541697421, 1.525039302686581, -7.554231411053715, -0.587013107919599, -1.300759655302306, -4.080716282648349, -2.186465568681216, -2.406484706468079, -6.958047179121224, -3.235753723041708, -4.304227928343334, 0.206370537347841, -2.625027214135385, -5.715311685851154, 1.3755895996309, 7.31396280189546; ...
                4.460614374892582, 3.19529761978484, -8.190318873976533, 17.720929604353678, 1.079903507675288, 4.032046572169589, 6.846170634331792, -2.990923968785385, -1.01384879195201, 4.210550185586089, 0.764711025819911, 6.307647053631859, 6.791811206494187, 1.358857762637734, -1.624613814301878, -10.150256933841442, -8.955086516370987, 2.41129571860055, 2.991835863170325, -2.084105485259767, -0.387882836033353, -12.037911290804784, 0.784781445004331, -3.51258593199461, -6.358051224678802, 2.354270933909405, 1.762978551917006, -7.508929712507494, 4.153956520027669, 8.430589071222315; ...
                0.112995451436564, 0.371936786139806, -7.025568330781, 9.769013689448464, -0.640793257766108, -11.677067837314976, 1.451572748927877, 1.171502164469018, 1.692647658091279, -0.881205326796837, 4.268282553052323, -5.637459471007516, -4.897450001353112, 0.171735893079777, -0.9211330468045, -2.490514871584582, 9.607046944744821, -7.206797204798768, 4.349647727744751, 4.621339140117586, 10.832359506208546, 5.100626759149631, -4.076131311364439, -0.932775487935339, 0.50265512140222, -8.6858164471001, 15.294166113376837, -5.994248698329602, -11.694453405846096, -11.801285777570579; ...
                3.672120136902007, 2.62662795338849, -6.295270647326517, -1.069859934951232, -3.811330299405138, 1.594900688552953, -0.822649421610342, -2.996102354897966, 0.011410712161871, 3.804973955584018, 0.29095969601554, 0.154412566421657, 6.009123692794804, 1.048840941857638, 0.1142053347247, 1.041139886749876, -1.766488251223224, -1.232261508678568, 3.296071326639848, -2.373608140335303, -1.250158758539599, -0.720873134553766, -0.615677318700518, 1.403259047870607, 3.005529442348132, -1.215626145907597, 0.042094269477194, -2.231879359014662, 1.611360878893429, 6.469735186892669; ...
                -5.818552929715837, -0.916929571232854, -0.366611990060092, -5.12995032472354, 6.905064130414796, -6.544579871223458, -7.16220048221164, -1.218392721965018, 0.028386972148047, 13.304659303178061, 5.212031101975595, -0.198414575621711, 2.043938045553383, -0.295480321457095, -9.738766031154933, 4.373893439532715, 5.133821298601127, -6.818797238217159, 2.032166191824439, 1.299068415608013, -5.282486677908174, 8.79704452443048, 12.849891231025046, 2.787156804154204, 6.225881805493842, -4.429387659772509, -7.4036051874247, 3.478946685666019, 1.632891481413625, -1.105751993528384; ...
                3.486878591381191, 2.633938629834198, -3.834544259817514, 6.338661537296378, 0.08440220487435, 0.891537452927858, 7.386752241464462, -3.143341265990022, 0.17569569189933, -1.189840684944929, 2.063745656499299, -3.873741753209196, 7.631037421790815, 0.870407519991694, 5.416923136109038, -4.796174802688587, -5.441484022053353, 7.113220057014851, -4.021007101784125, 1.093337823554031, -0.723713415910556, -11.778856908851662, -8.947505317275446, 0.371697970006654, -3.368349776966538, 4.657443083154591, 0.453955538023004, -1.740701616944006, -1.65220541740956, 1.029317693975664; ...
                2.46194490699664, -0.336732006333566, -0.552403825578577, -8.452671777634976, -5.633844858472623, 4.461702367049373, -3.779157969724202, 2.769245822243623, -1.006803537946152, 1.372993145527169, -2.883759917737196, 3.935344741349428, 1.588807880940938, 1.666332742486905, -3.345107247615156, 9.018878681488209, 4.966343941267382, -2.378406115718362, 4.984115491643569, -6.369451753840427, -4.810457553048149, 4.695631510723671, 8.870216904135045, 1.851266423773728, 0.47853186190453, 2.284171420203474, -1.699791507685024, 4.11585412102773, 2.079681507808699, 6.064422880045283];
        if D == 10
            M = M1;
        else
            M = M2;
        end
        M = M(1:D, 1:D);
        o = O(1:D);
        z = x - repmat(o, ps, 1) + 1;
        y = (z - 1) * M;
        z_D_1 = z(:, 1:D - 1);
        z_2_D = z(:, 2:D);
        f = sum((100 * (z_D_1.^2 - z_2_D).^2 + (z_D_1 - 1).^2), 2);
        g(:, 1) = 0.5 - exp(-0.1 * sqrt(1 / D * sum(y.^2, 2))) - 3 * exp(1 / D * sum(cos(0.1 * y), 2)) + exp(1);
    case 9
        O = [-41.03250252873486, -35.70280591875908, -48.66938576680659, 94.51946988004894, 31.68700466174738, 99.69508270219342, 30.778279925351967, -31.041222172110807, -46.21010370947247, 27.26190010072706, -2.093622677920422, 22.246274570582585, -42.887366421312436, 89.88377145577851, -6.731523713182725, 97.86439204258224, 49.49993772881544, 23.210695390854696, -81.36716857155828, -20.15688556597543, 36.692155371634726, 44.37408948075327, -15.984549833405907, -49.68391424581281, 98.3715576810595, 0.127593155843627, 61.709914317965655, -84.0189999580673, -35.39565398431638, -5.143979333218638];
        o = O(1:D);
        y = x - repmat(o, ps, 1);
        z = y + 1;
        z_D_1 = z(:, 1:D - 1);
        z_2_D = z(:, 2:D);
        f = sum((100 * (z_D_1.^2 - z_2_D).^2 + (z_D_1 - 1).^2), 2);
        h(:, 1) = abs(sum((y .* sin(sqrt(abs(y)))), 2)) - delta;
    case 10
        O = [-41.03250252873486, -35.70280591875908, -48.66938576680659, 94.51946988004894, 31.68700466174738, 99.69508270219342, 30.778279925351967, -31.041222172110807, -46.21010370947247, 27.26190010072706, -2.093622677920422, 22.246274570582585, -42.887366421312436, 89.88377145577851, -6.731523713182725, 97.86439204258224, 49.49993772881544, 23.210695390854696, -81.36716857155828, -20.15688556597543, 36.692155371634726, 44.37408948075327, -15.984549833405907, -49.68391424581281, 98.3715576810595, 0.127593155843627, 61.709914317965655, -84.0189999580673, -35.39565398431638, -5.143979333218638];
        M1 = [-0.040348736997622, -0.57547478301341, -0.389765935131311, 0.140885590781398, -0.144670835908614, 0.115450535800564, -0.518304793509814, 0.149470047989466, 0.386138410795004, 0.145230906380518; ...
                -0.065866355431932, -0.257122057117828, 0.298076832606074, -0.339838329245853, 0.36335902728584, 0.69140513648482, -0.028135015592, 0.214592766458436, -0.21337789362989, 0.150888625576118; ...
                -0.154282201350543, 0.233990300992969, 0.196071677766854, -0.516011967110319, -0.265721705059327, -0.060905234855331, 0.017107816544837, 0.459602625258773, 0.548125243387881, -0.174490925899168; ...
                0.363857337521185, 0.622123871321307, 0.051207493885242, 0.281214293456459, 0.077610534696611, 0.38475834924149, -0.410410905293451, -0.035659107285799, 0.245258564359423, 0.122242429111897; ...
                0.050671935660746, 0.081648277010661, -0.034403618638332, -0.604379533928053, 0.029715665982435, -0.255779368776897, -0.321832198773717, -0.454789288464763, -0.04205042244723, 0.49580649289475; ...
                -0.580165394752893, 0.155095038022222, 0.210065625307939, 0.265731671126386, -0.481942328396859, 0.107406464626288, -0.031135086609527, 0.076014134025855, -0.182793563791557, 0.490558019238156; ...
                0.525119522958187, -0.007317154673771, -0.078860784151735, -0.118095618729855, -0.388828033497333, -0.11024307003898, -0.140281776355321, 0.496093855143328, -0.517431971433034, 0.084650093567346; ...
                -0.221934029584865, 0.08937666134435, -0.161579047653623, -0.202383925865339, -0.358394121525824, 0.305489267359872, -0.319803594563591, -0.329350210528224, -0.279367850055518, -0.604257992994783; ...
                -0.14024729892381, -0.085950562359788, 0.562192927749687, 0.15621897836716, 0.259175107289986, -0.401255905586421, -0.564318107548709, 0.125407586464797, -0.135691838706447, -0.227388734136487; ...
                -0.392433919094433, 0.338788001793312, -0.569620515414919, -0.064134166835177, 0.436408519589215, -0.115926326668514, -0.12994296127687, 0.36903024504463, -0.213067396847211, 0.016735182121047];
        M2 = [0.210498733952046, 0.044384555963486, 0.039557467453157, 0.322626150860574, 0.090728331050138, -0.046559513284792, 0.279058079389439, 0.216086043131122, 0.001910966340658, 0.005653042988124, 0.055129408353881, -0.157826900224939, 0.126895165086409, 0.21964276539513, -0.030777527838514, -0.174795699173724, -0.071684319926197, -0.435002022420347, 0.300879515782067, 0.196965690878292, 0.015408513092551, -0.088767209425526, -0.056721005316589, 0.004563253603378, -0.411103445073825, -0.098798851715865, -0.017178459384374, 0.223973235768929, -0.038630814336146, 0.153324298640425; ...
                -0.123853898371964, 0.006208844977804, -0.196968610000223, -0.297886862654356, 0.337304789619692, 0.151336922415474, -0.190737243250796, 0.371272076371965, 0.05154807935738, -0.089924110414285, -0.147609151282806, -0.083802701820601, 0.017052091139248, 0.207360614681, -0.014730657062048, 0.030357000089238, -0.38493302429957, -0.098471468276102, -0.24989513579197, 0.265831026621616, 0.039327358400047, 0.102952558500907, 0.112835401766515, 0.075442015984702, -0.050054414064672, 0.152147800707443, 0.275356821244483, -0.075104525195784, 0.130811841464527, 0.128154556261642; ...
                -0.247552776888796, -0.170900469984963, -0.025609465501807, -0.074857181493926, 0.06402729466598, -0.249589575845155, 0.291141404096232, -0.151955001483896, -0.182101792706067, 0.177528281451576, -0.11080027107009, -0.101265961425373, 0.05885945181901, 0.282705041568106, -0.075385821998282, -0.183086148754718, -0.03660323576297, 0.095170386364688, 0.004340336079074, 0.000556182984035, 0.321477491995385, 0.031769482356446, -0.111377507159358, 0.532122152715201, 0.088882029439331, -0.098799193147706, 0.101408217806575, -0.110636423867126, -0.211274352044764, -0.155079279400244; ...
                0.025663646265114, 0.102509721975959, 0.309345681084264, 0.070334750076729, 0.097241604458889, -0.273266320148514, -0.239907149554807, 0.150740659614263, 0.069994908090163, -0.039122490587809, 0.125893036315579, -0.340093749710236, 0.154051275851787, 0.186934934550147, -0.25121208048304, -0.196077026994064, 0.01583365232178, 0.55909380072088, 0.112181997526451, -0.008728203934299, -0.217367189352171, -0.106529307174376, 0.050536269466879, -0.006551233713265, -0.045903154193401, 0.167087870245007, 0.002122466601521, -0.012682827041684, -0.002595974426726, 0.093386409335028; ...
                -0.096757718998012, -0.039650722973667, -0.056221933017481, 0.247299467670382, 0.12500615760951, -0.129535632819352, 0.037407381782829, -0.049321379462225, 0.022699926035277, 0.192965409321344, 0.104996464498579, 0.085577579883565, 0.078833431392308, 0.19343561654434, 0.253727682682793, 0.025915952751218, -0.084868665088399, 0.037854288550344, -0.393242682132416, -0.312008732104883, 0.022684882865586, 0.127011588278839, -0.048595771065928, -0.309159369729801, -0.363341449374355, 0.16665805071768, -0.056515345289132, -0.298609174881293, -0.294119559817135, 0.099285471881439; ...
                0.043186472508942, 0.001771226886988, 0.14263426111345, -0.026446427851299, -0.042202844595988, 0.229858934929016, 0.192708259881167, 0.454739275512023, 0.078993562199931, 0.012272017371985, 0.208615477072962, 0.0286479351207, -0.078639302217307, -0.271449720411795, 0.183880260881944, -0.221305977752936, 0.090741804187672, 0.221668479563272, -0.18125553211922, 0.202526121479001, 0.143690682699279, -0.009428483121244, -0.138122988901157, -0.0087984112929, 0.180843519453226, -0.167186223826231, 0.059308954954177, 0.044175554473605, -0.451367400847036, 0.155461979668354; ...
                0.208459638473921, -0.192313493572805, 0.042799453883608, 0.056319917449526, -0.064050781971354, 0.336443527835829, -0.024913686145588, -0.135392681180607, 0.084208982811827, 0.19368687774262, 0.273506736028856, 0.161025819114185, -0.145878857750618, 0.175226077989248, 0.197067036614125, 0.01612829628023, -0.266892552385116, 0.294523656999125, 0.111195525470887, -0.201292974303023, 0.007989116024197, -0.133381335708404, -0.05978698001368, 0.163532731543214, -0.166898927792151, -0.069407809244429, 0.410416043355545, 0.195220789227849, 0.206696988670138, -0.030109638400114; ...
                -0.161888866215218, -0.477833679054076, 0.090201553328432, 0.197276529552719, 0.257525091427261, 0.234933865087851, 0.111554961171882, 0.039671046122422, 0.1024028037035, -0.275023229663029, -0.179789894147703, -0.149367349549056, 0.097199867696211, 0.038487537865377, -0.102826054337925, 0.041005419958829, 0.071428957044728, 0.133047965356434, -0.271733080060097, -0.07745323185521, -0.074759189714073, 0.047497229049009, -0.165726777593199, -0.084379708142798, -0.046302009416911, -0.250215681879312, -0.226883004983199, 0.246816548042778, 0.174568318097348, -0.215049387958273; ...
                0.163861486371016, -0.148103013020227, -0.198506174180913, -0.04219384123679, 0.118302213986748, 0.022695570191254, 0.206707310041736, 0.156232002478571, 0.093575716314624, 0.487161837511012, -0.277679678378239, -0.05898824271195, -0.101340463707747, -0.197187024207523, -0.356221119308529, 0.175907621024382, 0.025724776145916, 0.177555844621935, 0.186546393359421, -0.011515740909936, -0.063280757601228, 0.108572545320813, 0.250175342159778, -0.217188740737622, -0.118288673330692, -0.018858445496624, 0.125813534590454, -0.005766830114285, -0.173770830530608, -0.204076434641454; ...
                0.076726374752626, -0.059157318075244, -0.109120969315065, 0.281735964889155, 0.113701355600812, 0.057934126040283, 0.056930714392195, -0.260311629272444, 0.066131852169431, 0.254150636558942, -0.123595487021829, -0.068770016151727, -0.084370591918571, -0.210531372886378, -0.058314753673756, -0.373308427361442, -0.015030712250411, 0.013086120163669, -0.210199938641698, 0.044179063442584, -0.090836039745107, 0.110863603159718, 0.197449444025479, 0.163833987692559, 0.172463370094917, -0.02624766621562, -0.075091307788291, -0.035678286150929, 0.258868590341026, 0.540009857641777; ...
                -0.11448537731886, 0.158421318146668, -0.119175728122649, 0.201903441501447, -0.009316901256506, 0.173542979966456, -0.234634060687318, -0.135893056643097, 0.271225318340463, 0.108809056996355, -0.016309462418078, 0.118496233811428, 0.304052823739158, -0.007722437001817, 0.094448421400381, 0.034726127685042, -0.116005525261297, 0.078981290570637, 0.205206605235178, 0.30369188618657, -0.312746271441503, 0.393986794526704, -0.195899452039796, 0.20494103596369, -0.018949028418705, -0.184962367629022, -0.079402591539207, -0.121729951631301, -0.181982754615953, -0.156530779671702; ...
                0.162253760728648, -0.153789438331871, 0.00868657051539, -0.131911170907241, 0.420552377770407, -0.216321029385655, -0.133791045486745, -0.270383692536091, -0.113959519847022, -0.182238016801448, 0.191497999470082, -0.054919230163731, 0.162994884573224, -0.222520719869188, 0.021240982443138, 0.090745017688942, -0.291288801107928, -0.047608464418265, 0.152396018978015, -0.070526756136424, 0.048450789083476, -0.045567922857345, 0.102798772566309, -0.159656473982117, 0.118251926660962, -0.430675707603667, 0.10458086074914, -0.029209095590176, -0.242559117346188, 0.146082148041515; ...
                -0.054769889978099, -0.102998778221723, 0.064729032089379, 0.181703388132909, -0.238051881438163, 0.125211106412204, -0.301322664395015, -0.055687348687259, -0.039615420818266, -0.10893447819021, -0.225903659932295, -0.168752128472236, 0.050214382872752, -0.209623736459376, -0.021152472752855, -0.530138693435876, -0.134544018857329, -0.145183011013022, 0.052406331352567, -0.066953538369538, 0.210839727968681, -0.005790710509523, 0.040900628077853, -0.219106039109813, -0.058779545307731, 0.037152749763887, 0.306738266478922, -0.155410315881546, -0.059669333754521, -0.307937539980894; ...
                0.188677164396131, 0.102763453891941, -0.392205809826425, 0.023274604305339, -0.241062713234987, -0.134335764348244, -0.156920883882407, 0.118394352690385, -0.242783527480707, 0.148199620429226, 0.038598382023358, -0.373777385965017, -0.079990650844341, 0.109379832985269, 0.276235130978874, 0.000424181313047, -0.1581803206613, 0.194537934564581, -0.112037113974561, 0.092669956020601, 0.151181460492394, 0.064779413736991, 0.03298441610138, -0.105713078293658, 0.026477488720875, -0.301872238837486, -0.304572846125097, 0.129303116825904, 0.150275305655397, -0.143819273917584; ...
                -0.121136819961029, -0.280376857590378, -0.142884824324944, -0.234336987516145, -0.27318548804741, -0.062906552289143, 0.117125592225031, -0.111153019559446, 0.170636020457398, -0.049474387767955, 0.250337970843838, -0.015737111315197, 0.303098653510777, -0.031695841766391, -0.018294649882712, -0.004853390742363, 0.288923483741941, 0.102932886997556, -0.030117891708216, 0.348873109957197, 0.107864455557603, -0.053217559061395, 0.155554070063422, -0.131389140271268, -0.306220365198726, -0.153022880982604, 0.128394915701578, -0.254920058505309, 0.228391386551728, 0.124793864045053; ...
                -0.085458356559741, -0.06749024827502, -0.243684986433717, 0.195223151576616, -0.056144203577952, -0.107022717570903, -0.119766313023139, 0.21180214818079, 0.286641525002163, -0.256687343688466, -0.016698212375744, 0.168676200561914, -0.300510419700627, 0.3859169863873, -0.025097350370833, -0.064878242312045, 0.223840463303938, -0.013692765327541, 0.191347293229108, -0.221476004310888, 0.014539395850687, 0.108928515315896, 0.2763380292334, -0.022071088238979, 0.190680276913542, -0.305290419919566, 0.107640319223234, -0.104538877590241, -0.084705533603217, 0.108822927690725; ...
                0.359256748293047, 0.154976198577344, -0.116153265766918, 0.13931677738968, 0.374496005165856, 0.178417709752365, -0.020215045948477, 0.0511359434473, -0.30173528700312, -0.216545463965152, -0.113137661147475, 0.186762444883836, 0.040082745946815, -0.053364283388025, 0.065488033743007, -0.033154988554239, 0.317998692979354, 0.247815755943833, 0.126243283202638, 0.038451263306162, 0.256900869660439, 0.043331197504268, -0.051702015143296, 0.115290293077177, -0.162878255904405, 0.042941144091639, -0.0273285865418, -0.345298257763101, 0.15936874911257, -0.076890125653739; ...
                -0.28099424578992, 0.107396814515739, -0.084563105000033, 0.251259020314969, -0.046244227618743, 0.194849917362354, 0.105731360526473, -0.116729435444227, -0.125871612130733, -0.004143188817115, 0.031303723499165, 0.193842070959737, -0.071047584389393, 0.163798237107731, -0.33103883422486, 0.083042404997121, -0.314536638066646, 0.1850656428806, 0.139857282060989, 0.258138857521682, 0.241402804816099, -0.267773012822818, -0.136618598358345, -0.352889529882469, 0.178761358680642, 0.004675588386463, -0.130523685747766, -0.11010510100568, 0.012337514111924, 0.133039188998738; ...
                -0.136214748186763, 0.061446441408168, 0.124443001628158, -0.384194680239079, 0.161386673633437, 0.05151848059208, 0.050237897866986, 0.092332554624287, 0.025301015752734, 0.144267170372807, 0.177218756700414, 0.330110661903483, -0.032723550578364, 0.032862846981569, -0.039329546595698, -0.479455648611786, -0.142384919826993, -0.00804128544337, 0.153527223636046, -0.147592550588846, 0.01671488256034, 0.153461668336777, 0.143391962131602, -0.1032423296903, -0.127806420761444, -0.112212283814506, -0.419393741016172, 0.011554752050117, 0.174489436742579, -0.152583142805368; ...
                -0.183525414815911, 0.084264423476034, -0.513582573163132, -0.060641305770964, 0.096244159556264, 0.049715888666474, 0.311001693872411, 0.001259440460654, 0.036651495187505, -0.187364828692437, -0.017792472149735, -0.108962196548542, 0.106923649625955, -0.137418200183617, 0.231554866808663, -0.211864650236558, -0.056173351885998, 0.108205208097382, 0.152251721125532, -0.172564127758839, -0.379707703841598, -0.399495209658996, -0.017301373440465, 0.016739053799758, 0.035848677241745, 0.150058535685014, 0.019465311724744, -0.030054112339037, -0.049980094722222, -0.078081830537862; ...
                0.061058425410664, 0.042041509977416, -0.211003741431923, -0.126388800908604, 0.039219152461988, 0.225495863827954, -0.366358041819373, -0.190018182245224, -0.135422744295414, 0.106462362604256, -0.028597656153562, 0.151442873263496, 0.108762194743749, 0.202895035408, -0.220198514387979, -0.145116392843135, 0.287960518621411, -0.046429895952516, -0.236435128849732, 0.064337841563859, -0.044861474741858, -0.323541240367847, 0.116777979642275, 0.058194390691809, -0.143859430803049, -0.058357266848021, -0.06663691339304, 0.323975481839132, -0.363821240073463, 0.025044920981486; ...
                -0.189525638545991, -0.006677446894394, 0.040135587178237, 0.030562197515064, -0.081557175019313, -0.35988601916995, -0.046748366964196, 0.052796424347975, -0.293965333147152, -0.107256786396328, -0.266428993150317, 0.331112621223704, -0.3240691448606, -0.183930905848232, 0.033931266862913, -0.056733070481899, -0.071906584046074, 0.165910393063134, -0.066596131882292, 0.187535095996836, -0.282573695097042, -0.012822431812993, -0.130628684496259, 0.019603565202997, -0.36530186945985, -0.218948877174082, 0.15928161680357, 0.117469132881907, 0.02739594774293, 0.086724839893498; ...
                -0.046415954902964, -0.160644004446126, -0.033524440660352, 0.07500744681351, 0.016322145454599, -0.107804845719038, -0.239974742220443, 0.045234085507995, 0.410025327436819, -0.041785955831231, -0.088824232512646, 0.019324971910103, -0.164179563969319, -0.274883654548913, 0.08344816321592, 0.134361131744622, -0.168293304036166, 0.050119827090831, 0.107998968576299, 0.024222465405286, 0.333568438641683, -0.314273943234102, 0.088627173413873, 0.307987145180008, -0.25957029953184, 0.139693331842536, -0.366318566467329, -0.024315207215651, -0.097866140810133, 0.031984120313315; ...
                0.414611908814294, -0.37112136873643, -0.073866553818035, -0.29087757946088, -0.217072217367287, -0.029123302474621, 0.010661588246943, -0.056648186984039, 0.052448395670158, -0.125771363235671, -0.323377762528554, 0.103065249994115, 0.03990538947911, 0.20892679696363, 0.025498721902253, -0.133437428932213, -0.116769147892009, 0.075000348696883, 0.147043486128104, 0.012254394305512, -0.070162283643009, 0.104480173528188, -0.343231962242353, -0.124041674266431, 0.079443082346753, 0.192704701695008, -0.169380089268582, -0.054285719705745, -0.145500023209769, 0.255395103787066; ...
                0.207119315322088, -0.320073115712564, 0.0559314734117, 0.172649138634129, -0.011542461945528, -0.130620764160256, -0.10888053008216, 0.267564406009138, -0.120890663229249, 0.202202465644977, 0.149425179881808, 0.216934380895458, 0.065653150449446, 0.041794472366999, -0.048128520065833, -0.017549459873998, -0.077842831218385, -0.198170596730465, -0.149865167620775, 0.12634718117617, -0.30097962077431, -0.356324559219511, 0.015984934796442, 0.112407601721805, 0.237966910014296, -0.056653284700555, -0.084496688943403, -0.372456205768623, 0.097560810635958, -0.241013145399317; ...
                0.042993730292494, 0.004956761653254, 0.053895052194156, -0.088854185716889, 0.326910901526066, -0.087794341394476, -0.020802090219748, -0.298708928515842, 0.25242600994189, 0.101197681470221, 0.07152866676548, -0.181921564652412, -0.505149592427631, 0.143193361309159, 0.186981040042569, -0.133652828493287, 0.200265248087893, -0.073752726703129, -0.000238503991611, 0.374550360408052, -0.050281630947108, -0.092458775511721, -0.205541771113341, -0.211350594454595, 0.048295879169752, 0.061913849844292, 0.046521349189447, -0.065574597414797, 0.000727202776555, -0.214369198817042; ...
                -0.372708113027754, -0.273111422565572, -0.028044496936687, -0.031315545207917, 0.128692442270306, 0.103912301156068, -0.317409754881132, 0.193362522820359, -0.263946940397186, 0.328539161755314, 0.014885444611456, -0.135231025676715, 0.012770730354147, -0.056470973842145, 0.187010128145666, 0.06551126700651, 0.264488080744978, -0.092362300447396, 0.374463443107909, -0.114265316590068, 0.014321931394336, -0.014287975486322, -0.251977653040875, -0.068814134318263, 0.037272928895606, 0.036847910078949, -0.004344868007102, 0.000682914575515, 0.075677153681488, 0.26759596689543; ...
                0.064818689916455, 0.284053411520265, -0.063930667567762, -0.055888531296039, 0.084971324574045, -0.248553864049376, -0.053882957221272, 0.109974358415086, 0.361665795220151, 0.212622412400492, -0.222105881590724, 0.159407186211676, 0.277766857748719, -0.040024212790115, -0.045419517646103, -0.049565963430445, 0.075309844691921, -0.01462002387698, -0.125901695229838, -0.179360862877057, 0.201763873122918, -0.220450927984847, -0.414575162457279, -0.112162765618009, 0.098487134259606, -0.239965053948616, 0.170255100801187, 0.078980100492884, 0.243403068580785, 0.021368523436668; ...
                -0.054279013736138, 0.018659420049998, 0.330359950213943, 0.023123143363581, 0.035090878248845, 0.025527653285977, 0.082763577820282, -0.044575644917522, -0.004626086242742, 0.103520181686413, -0.432497376883502, 0.119032674935153, 0.236464940348734, 0.185294902781396, 0.510006376075268, 0.054475637131684, 0.021019631752974, 0.107026280159219, 0.091553865611036, 0.169591926725838, 0.02088417330554, -0.183147177835376, 0.427381645911547, -0.13187711537175, 0.138348964310852, -0.037276342733556, -0.010728013977158, 0.085070861966194, -0.008940851260341, 0.001071606497694; ...
                -0.001220559638941, -0.207365392796594, -0.23185510790523, 0.208482953784606, 0.122000548923194, -0.322922674036945, -0.041150767726355, 0.035241090632951, -0.012254747396228, -0.030675366498019, 0.216247246460075, 0.297863251529541, 0.168847156819068, -0.082183953429559, 0.065957904193529, -0.09572234076031, 0.040748898076806, 0.06592096841622, 0.028275231975731, 0.180261847132564, 0.167295789767305, 0.208499007714482, 0.06073181729704, -0.09136260314961, 0.195634463938498, 0.405036010088252, 0.090356343227339, 0.443504939597125, 0.041746547462442, -0.143522086623263];
        o = O(1:D);
        z = x - repmat(o, ps, 1) + 1;
        if D == 10
            M = M1;
        else
            M = M2;
        end
        M = M(1:D, 1:D);
        y = (z - 1) * M;
        z_D_1 = z(:, 1:D - 1);
        z_2_D = z(:, 2:D);
        f = sum((100 * (z_D_1.^2 - z_2_D).^2 + (z_D_1 - 1).^2), 2);
        h(:, 1) = abs(sum((y .* sin(sqrt(abs(y)))), 2)) - delta;
    case 11
        O = [0.786412832829728, 0.224970263937584, 0.534200883186777, 0.708371248558908, 0.163080926857473, 0.768660589584868, 0.1762692231182, 0.310310542254487, 0.279811607250377, 0.825543830090833, 0.847363744014823, 0.442103825982325, 0.84951329245954, 0.523004716844064, 0.044699072032802, 0.792400388660219, 0.292824262720788, 0.178722825110973, 0.549380820517875, 0.352736549012222, 0.080102993555225, 0.853135372349337, 0.790965386853156, 0.951634097517732, 0.809945865440195, 0.313724260202943, 0.241711589286433, 0.546972335229794, 0.270900015013911, 0.389639306011642];
        M1 = [0.089633918378866, 0.512130446273224, 0.485514077203757, -0.252958672779915, 0.252770541915915, 0.282726797116408, 0.011481584098212, 0.501645726490125, 0.182717825231853, 0.031348100000026; ...
                -0.280115239342013, -0.237293103798464, 0.161291392367593, -0.283707496604443, 0.364811930990744, -0.062761689119337, -0.739185429285342, -0.191267363255477, 0.163852853571301, -0.108948351728692; ...
                -0.054128359479101, 0.280409298113112, -0.705443683949621, -0.251735861726835, 0.296849031180373, -0.090813013702513, -0.065957070182011, 0.30050375022829, -0.272322162400478, -0.303711147333872; ...
                -0.452847886193739, 0.236523261801994, -0.24521824465, -0.081379588794718, -0.24525780464972, 0.37821495392415, -0.18193070994583, -0.056246704353941, -0.093664221220625, 0.651150911995366; ...
                0.361083640107602, 0.399352960578869, -0.140221518169126, 0.501290666120365, 0.227775075396437, -0.344871729183228, -0.325346508438507, -0.093040278786845, 0.207431987018326, 0.332909212543853; ...
                -0.327366108426422, -0.034166615485878, 0.168579539272942, -0.231702366911964, 0.292800433946541, -0.648132837341469, 0.361448041200678, 0.046154155969474, -0.131239528768862, 0.392112292683837; ...
                -0.416908196358713, -0.161816318805297, -0.179541440127106, 0.415157611173291, 0.440167850594149, 0.25787201771071, 0.30374321406454, 0.077672586210717, 0.481631833482542, -0.070029679148627; ...
                -0.082769326821527, -0.296458567384547, -0.095392668680313, 0.079070267285698, -0.410370494920092, -0.277529903950391, -0.232372087468556, 0.707837046116306, 0.291065711969018, 0.068801000678567; ...
                -0.314851017910477, 0.037408462116577, 0.292343317100224, 0.548829235267724, 0.065696886904918, 0.012681873453724, -0.181476896332993, 0.21693059635943, -0.634666974725221, -0.159748150960876; ...
                0.433769285221923, -0.520307620610873, -0.07481810354657, -0.026992353432197, 0.388158769389856, 0.286598385013371, -0.018393693541829, 0.231063340808058, -0.277653756652504, 0.413729117675976];
        M2 = [0.213664507653598, 0.081181994864055, 0.109287504638465, -0.025177866704494, 0.022222285306807, -0.042656953236281, -0.064708019281558, -0.166881530892857, -0.049029069752717, -0.352822537935909, -0.10560659182506, 0.172325114774526, 0.151840000333581, 0.226141562503423, 0.098785038088718, -0.038046518396688, 0.064354476751985, -0.397839588660246, -0.035803778238277, 0.143522858437253, -0.132896510459094, 0.0776878752635, -0.230960330142614, -0.065023068412763, -0.324799719792717, -0.394410999051323, -0.064406717392709, 0.113744829639383, 0.311387845557846, -0.083797609752818; ...
                -0.271700088866788, -0.019398284664685, -0.147690031630542, -0.14646895298845, 0.009734059809619, -0.360263733874311, -0.08446685711877, 0.074923689193188, -0.163935979878233, 0.235507396752789, 0.109294373655602, 0.275570585394534, -0.342781812122196, -0.097283082956871, 0.000965683202336, -0.364649787402838, -0.120741535426983, 0.081333703172679, 0.187707474611139, 0.012291646647864, -0.24973965974932, 0.147605133728092, -0.236914164871624, 0.140203023828278, -0.090596746744275, -0.079951967559402, 0.041339061451822, -0.143083898074293, 0.215812964283571, -0.099342527132328; ...
                -0.067990719526256, 0.265087739087109, 0.069641500406529, -0.075142020476545, 0.342414425640308, 0.193955025198242, -0.119407721016019, 0.182485692744089, 0.078232269648152, 0.201926600459772, -0.118697625348229, -0.043262798962201, 0.372144060227865, -0.015090449753815, 0.191694088533503, -0.158605317529149, 0.112058863065475, 0.02590233184065, 0.203619627876814, -0.064290403099129, -0.02432596986466, 0.049145901961444, 0.229396848321773, -0.05297004437931, -0.065000670782875, 0.070701153673056, 0.453255361840545, -0.083935114638238, 0.31146341510963, -0.112829838156669; ...
                -0.030968898341742, -0.050888797506771, 0.030830254756601, 0.04178819557194, 0.065658071283464, 0.450923351464843, 0.214706791003811, -0.323207360495052, -0.008354103400074, -0.053133505933914, -0.195866183390291, 0.187102471622905, -0.206804305716109, 0.101819425389, -0.11082652699642, -0.39711167566239, 0.123494232660844, 0.053736727436837, 0.096036627871671, -0.019258600848078, -0.219821668806651, -0.253908923606591, 0.005089036974723, 0.127991628463459, 0.037075803520335, 0.010378302018138, 0.143684554656654, 0.095817813086981, -0.050150939862002, 0.381333412629458; ...
                0.226288151720664, 0.24606116722381, 0.106911720534849, 0.47292916025144, 0.080821596642439, -0.106639568044331, -0.25871955956032, -0.067303307998019, -0.223306723802896, 0.118314382149731, 0.092493331574002, -0.160569418944115, -0.239227946040776, 0.159833124584156, -0.097589784005531, 0.088561998405886, -0.176607551065602, 0.220391576923025, 0.118673673892537, 0.172529373109131, -0.052521621702833, -0.302376571169939, 0.057527555491466, -0.051198984930294, -0.151934969640591, -0.20288907211878, 0.237694257469852, 0.011731349236642, -0.121683054008454, -0.077562196214513; ...
                -0.023341124631582, -0.106367398061812, 0.139185062166589, -0.023708842343116, -0.122924349219742, -0.317270751931269, 0.09085932216237, -0.004003755978159, 0.081504361166746, 0.051004055378783, 0.087122807098326, 0.065197475901265, 0.326987038415912, 0.149191719081344, 0.059533213153922, -0.289471752269275, 0.036292592579316, 0.051991150593147, 0.423393392470416, 0.14243832552759, 0.26694616322671, -0.033149461153889, -0.06238762331634, -0.017742808969348, 0.224077199443182, -0.164572449247675, 0.081131000428636, 0.411086190636973, -0.270016145919628, 0.025440356389857; ...
                0.217340969946372, -0.010887941365408, -0.105414165411544, 0.028640113752392, 0.245192353428576, 0.123453698955525, -0.22027448510549, 0.080008470401683, -0.200064078714725, 0.409080331693645, -0.01164832823722, 0.149285163400367, 0.212696285382057, -0.036842592163519, -0.184563269192621, 0.099675386172013, -0.104962991127113, -0.351644037772175, 0.003612814494479, 0.119290352639962, 0.014038386652626, -0.078680586178529, -0.257539407999236, 0.356517750088968, 0.065999684745291, 0.244698740520543, -0.16125727875757, 0.200412631256186, -0.047032406403128, 0.093230368282809; ...
                -0.308047033323461, 0.302782029048974, 0.0322661459595, 0.106587658429326, -0.168271630981503, -0.070035690780841, -0.051571249957414, 0.097566654836796, 0.098375409745765, 0.151603976234746, 0.057525783219635, -0.286426352771457, 0.024343824914064, -0.169780687940365, 0.022380508340654, -0.030982311876094, 0.415717134652659, -0.197521326266871, 0.088420077973385, 0.011114954697741, -0.263872664453069, -0.375124011890858, -0.011430439277577, -0.07452629391033, 0.016003087509299, -0.065727200479196, -0.373774336560803, 0.105840318864163, 0.100418169473233, 0.073219551853995; ...
                0.200163577534198, -0.039678659465808, 0.379527614131999, -0.099745969482936, -0.221373690414668, -0.148184040663515, 0.218923185321619, 0.16342688952909, 0.106160271957917, 0.128647167415555, -0.263722004680904, -0.073799506832126, -0.130373260973961, 0.05112747364289, -0.275651806010854, 0.164362590475763, -0.193891035029316, -0.231705892488554, 0.203407120866966, -0.180088567449336, -0.217043829626228, -0.065298093403581, -0.168646979873782, -0.249526662066186, 0.142398466204126, 0.184373897375203, 0.214617996769777, -0.037763990107245, 0.153370753506811, 0.029960427580481; ...
                0.027381106799167, 0.025298590700846, 0.085102913098931, 0.235161900850573, 0.088822124808788, -0.147746689766744, 0.287007437228783, 0.059680973101153, -0.083383065195545, -0.031229323155654, 0.031553099382079, 0.40509260167075, -0.066928120228784, -0.029895161415616, 0.160569988999854, 0.16678557709598, 0.254241427727434, 0.231808030036861, -0.219633335492758, -0.018225943045591, 0.205429075567088, -0.287803693680246, -0.159043658666998, 0.00879409803725, 0.165691311194281, 0.193758433635177, 0.054989913382989, 0.187140153188654, 0.381913634751314, -0.148889172210388; ...
                -0.193804968887996, -0.065126964033178, 0.301214940522026, 0.235589681539659, -0.103550074605781, 0.108383273427244, -0.105180685554545, 0.023625536573582, 0.01996270869354, -0.197178099155744, -0.005579002923688, -0.105996290889411, -0.201484156798754, -0.016580477043595, 0.096437307973893, -0.265258984515337, -0.038285680241242, -0.297437900623478, 0.110282050166409, 0.340831537665284, 0.353344803948875, 0.023969199411952, -0.037508048676323, 0.084467945077494, -0.101339199091876, 0.43127923493617, -0.012803021754092, -0.187066022130407, 0.045422882183782, -0.145164655232891; ...
                -0.188010538259573, 0.072561095841883, -0.215861415006047, 0.340625060094133, -0.271380094003135, 0.011550630486271, -0.021562277822991, -0.047039032262669, 0.24569627934439, 0.06878748082518, -0.013753922818236, 0.128800076934912, 0.251945144841963, -0.065565948950666, -0.247270548381727, -0.049324630517431, -0.283284532614162, -0.056856284381622, -0.038971423817489, -0.252726173186928, 0.351734439125858, -0.110658990096839, -0.106510561670422, 0.03737869055179, -0.115271643539905, -0.196770239210232, 0.068745507207565, -0.202290191092434, 0.230742566811053, 0.242089942893867; ...
                0.009670899760703, 0.19086441968746, -0.162303316721271, 0.064683931277254, 0.164443149200815, -0.323437173681877, 0.298292486419165, -0.287839297934076, 0.103447987260199, 0.066558230735603, -0.00811153653084, -0.267028782102504, -0.109803324276942, 0.030622270397094, -0.238104734999257, -0.210337042122685, -0.039664653707487, -0.272682220581616, -0.289034258391312, -0.056713148536939, 0.041560290546935, 0.135947625574874, 0.288994345741835, 0.171226457682862, 0.020154597183878, 0.087557724549144, 0.128411957307537, 0.266870366178292, 0.074920714589854, -0.178633022967889; ...
                0.058380141741122, -0.067241741998389, -0.107729007864175, -0.056331784327996, -0.168481007769024, 0.262125246984163, -0.007371786978638, 0.164927818594684, -0.036933870960258, 0.267509327915296, 0.368795934127986, -0.04754732992007, -0.164871757638282, 0.316046246052052, 0.326208946153877, -0.210383643418226, -0.148743568976932, -0.27228848616751, -0.298371974359424, -0.079114502261498, 0.05112487825332, -0.103950446102005, -0.01564162533912, -0.270929678785201, 0.227289734744482, -0.122956418941428, 0.102700134174179, 0.066767014869907, 0.049550920130668, -0.033845164172596; ...
                -0.086630774192244, -0.114904967536104, 0.070689120361513, -0.034071515269466, 0.122164936018725, -0.185544714908452, -0.269907389645905, 0.053128966344123, 0.063580062903748, -0.230905233848124, 0.130786631191676, 0.203748730532203, 0.130738123136379, -0.063121304824537, -0.291378414288447, -0.043225535031358, -0.01069469449417, -0.116151001188632, -0.23721367266419, 0.350947535209623, -0.186552245007249, -0.152639157418694, 0.254048004058081, -0.092165966765819, 0.455200922690338, -0.07128324467846, 0.136761821923458, -0.205729179281477, 0.069566872999856, 0.148165641059529; ...
                0.094081789475437, 0.164525371012304, 0.530381662137654, -0.125311053655768, 0.103697488442664, -0.121905535749908, 0.056068298081543, 0.006703334135084, 0.036583551377082, 0.19140471505715, 0.039561231445405, -0.055422919551433, 0.022569682208961, 0.296355942714072, 0.072278015477743, -0.112500040523406, -0.080236580672682, 0.19033073835967, -0.174276465756524, -0.065077925843275, 0.115236637819618, 0.066402495691896, 0.114332383707042, 0.305300264476914, 0.041924689523625, -0.114010854564669, -0.352544042259548, -0.244055210901362, 0.13019634886009, 0.269526775862334; ...
                -0.00489419108819, -0.3059705776172, 0.311548390724184, -0.141572289005789, -0.203176699858192, -0.026095435739131, -0.065157179843688, -0.038350549407962, -0.073662373827209, 0.142157446085444, 0.157373461407893, -0.046099550200634, 0.224210978651247, -0.298335544413649, -0.073612901848245, -0.159247698378578, -0.051909721672664, 0.145993068464936, -0.36519319549698, 0.032297295074329, -0.109562705494831, -0.167000876200342, 0.043268603623865, -0.035859010210215, -0.484116022339656, 0.09192729037904, 0.155163485816933, 0.224679527158001, 0.003313807587358, 0.011812567832784; ...
                -0.079164184231885, -0.079673141928438, 0.047991031562159, -0.093766613853708, 0.31417752040776, -0.056911358204846, 0.362675633792648, -0.060338425113277, -0.280182381876974, 0.018772162685462, 0.051300062700589, -0.049623674415283, 0.176261753739058, -0.060467833054284, -0.076986055167777, -0.086777151803824, 0.049098470056174, -0.187178075938113, -0.014362935091577, -0.12289914106784, 0.118233415764786, -0.341422902426496, -0.167949488567614, -0.105989559529699, -0.060591056127266, -0.15239285521963, 0.002181073424684, -0.462669300934778, -0.297768213927992, -0.23380321131751; ...
                -0.378516156455358, -0.1433149891874, 0.047248285574843, 0.072629998044244, 0.149384001121451, 0.237240860059944, 0.140303661447484, 0.20066037622952, 0.035463732796464, -0.106195572441474, -0.031516316526196, -0.002151701441264, 0.1120768051884, 0.270901510772577, -0.200351435603717, 0.03852665027653, -0.418916524751717, 0.143638180001652, 0.061776304496446, 0.033980452524636, -0.193528759911095, -0.110620722807679, 0.109607952267434, 0.03346002081992, -0.014672688437202, -0.043724266514642, -0.280786021801147, 0.235169251004673, 0.118943568855134, -0.366995339144498; ...
                -0.090339156130256, 0.258102936725341, -0.082642825321426, -0.177874017144745, 0.001268583195314, -0.105702469885669, -0.090199054235473, 0.094582271703797, -0.043622730291984, -0.345727234198456, -0.209942734609341, -0.30615350519884, 0.090529904558773, -0.041653675014824, 0.255573298859712, -0.100282747841932, -0.309584581927906, 0.124877004928111, -0.223740676264403, -0.031268448227269, -0.066373754125275, -0.222674185629732, -0.403563586099264, 0.212127520816293, 0.167001816786667, 0.094847203771669, 0.173262511782359, 0.085443515162292, -0.069914437636284, 0.102643402622927; ...
                0.055440475109441, 0.085951891879032, 0.172992547024373, 0.262905477453187, 0.224743205594987, 0.192540830845651, 0.110061418307678, 0.113827332043669, -0.168469541416164, -0.04800537454653, 0.103346160688271, -0.180941765207566, 0.011325240855003, -0.37937643896595, -0.182592630006882, -0.221956531577796, -0.027987786008159, 0.116676051648963, -0.077346609370271, 0.016773991056786, 0.030200744490138, 0.418769276358264, -0.283443734028498, -0.294586681085427, 0.197167046347308, -0.163506777011674, -0.103837075932755, 0.134058921059171, 0.081801487643389, 0.109353676269996; ...
                0.327360471359169, -0.28072048808365, -0.163555479309503, 0.31919381862241, 0.063611972539563, -0.214486982533365, -0.157654777857054, 0.180549631755488, -0.055285854531161, -0.186429790904586, -0.068249197353824, -0.064677706786589, 0.152817049718154, 0.144643068264453, 0.056012720322906, -0.382743611197267, 0.074505674218174, 0.050078384096382, 0.030018371634662, -0.384023043648669, -0.184612676085607, -0.055459493703995, 0.10084350694568, -0.081489460313665, -0.021712726717977, 0.262680866816756, -0.221178011925896, -0.086134078535059, 0.031300536165372, 0.011861695055184; ...
                0.012964948275638, 0.187786072616282, -0.056369451537001, -0.289348154058947, 0.267823758425312, -0.088036659356012, -0.133230824780343, -0.304146488281969, 0.015965034670596, -0.050127979326313, 0.106949329082003, 0.103272761307408, -0.07919152944579, -0.073430347934756, 0.026235112233403, -0.021541007721428, -0.293978552332072, 0.023684646076276, 0.156645243190832, -0.048501664763, 0.197787704307392, -0.194211661422967, 0.080180820135367, -0.496906269530592, -0.104584005315891, 0.258873613013138, -0.259649539738847, 0.123811379191117, 0.111293522081587, 0.181939407958772; ...
                0.294835878808858, -0.029209022921241, -0.217723946054288, -0.097404777024707, -0.052429134815045, 0.040356030871308, 0.393236833225354, 0.175557179390611, -0.03094063400247, -0.177963860281272, 0.449916685915366, -0.213456939438994, 0.058508695099448, -0.094405596522676, -0.008625355411711, 0.039160284839969, -0.098625835561265, 0.03408199804298, 0.28011442570154, 0.268665001951654, -0.05434462021136, -0.110027495654122, 0.08235063573064, 0.205944827529079, -0.102051034805319, 0.041742870426194, 0.0207325192601, -0.092449553345455, 0.289687544712165, 0.200232137666344; ...
                0.324562283237417, 0.184648348712247, 0.022446625011167, -0.217977077322926, -0.245608197072427, 0.223028741194813, -0.191885672937206, -0.234565861266814, 0.163142136227469, -0.034483774167611, 0.136829944775942, 0.010659321371311, 0.043886061930328, -0.10015800029478, -0.260708326142898, -0.209912729155911, 0.074289636558659, 0.192908976804704, 0.05279894151016, -0.083703330879473, 0.044462302715181, -0.10922321061719, -0.119520743996587, 0.115312784885046, 0.219184418022002, 0.006476796614963, -0.099039640423129, -0.09552952028645, 0.090279102663188, -0.520408674965181; ...
                0.189874262576368, -0.095312769672106, 0.023229777012101, 0.114052756900062, -0.095698687766527, 0.00435622515588, 0.104383153814706, -0.101851026410131, -0.036031847418115, 0.130809079398388, -0.348176020977506, 0.083868330339566, -0.008027489258884, -0.475250515495636, 0.405075360910557, -0.058330958272204, -0.324799136178965, -0.098826394313126, 0.054201621445373, 0.105539013031662, -0.050165348263293, -0.110988043058241, 0.307823877172309, 0.065638607280896, 0.175611728595002, -0.225527874730007, -0.167576013387015, -0.025898462181195, 0.047977681482798, -0.121614920666241; ...
                0.024817395005562, -0.17487826875149, -0.075479150475883, 0.189943924393605, 0.156145281833982, -0.055799107787251, 0.097805210291524, -0.333519405775061, 0.502960649221461, 0.250717861251373, 0.037973315883562, -0.117614481392449, 0.150749952794974, 0.100713451865893, 0.194650730577328, 0.041542080273073, -0.043075295232123, 0.14346659720724, -0.066416684640206, 0.30945572209412, -0.26079323424583, 0.060654388815103, -0.330908639343534, -0.133139659765055, 0.007715506835614, 0.129099603050523, -0.026526508575731, -0.186033367233492, -0.003227201944237, -0.039533548327422; ...
                0.095784409010262, 0.493960649899082, 0.054965293016426, 0.118386898900744, -0.089743887601218, 0.011108183624052, 0.207327445064612, 0.242443769099025, 0.206198128469745, -0.07993765597308, 0.158376106471485, 0.44069018725539, 0.080476930007356, -0.063999018485218, 0.045791410027783, -0.109218662101228, -0.133146601849485, -0.063457328740753, -0.098077643442681, 0.030229627867435, -0.22587886702408, 0.088840219102173, 0.060713279234327, -0.042942042030938, -0.162299014039001, 0.166693220455956, -0.036996741605182, -0.03566092366649, -0.415251090818235, -0.033476312360835; ...
                -0.134737022651914, 0.178824441680756, -0.065367644831629, 0.070421716758178, -0.380997368249991, -0.001424117236101, 0.111786488541009, -0.315238045340073, -0.564567583141614, 0.075644045120957, -0.04106733803819, 0.001359106777444, 0.342613474532435, 0.18843734841569, 0.016632274309598, 0.028151100670402, -0.040804196229357, 0.078149572314004, -0.009015740224079, 0.124083718002042, -0.154078742598099, 0.184197151976838, 0.073620529124081, -0.129123672253497, 0.132520067351779, 0.24339516107792, -0.028784979253861, -0.122593877628548, 0.087287100630432, 0.014242700063557; ...
                -0.151931107719764, -0.0663705228758, 0.273691836188752, 0.166063639310765, 0.083603614767844, 0.012365248008479, -0.096837151548972, -0.323046786194128, -0.002762106981556, -0.162979039714608, 0.457731335540932, 0.030662875665406, 0.044328722462083, -0.132362192693964, 0.204392438255486, 0.213174368356641, -0.108362051125394, -0.179307935282083, 0.178742296246812, -0.435746945897502, -0.211500176759846, 0.068172045884552, -0.005852335257529, 0.225384707452164, 0.144166264871071, 0.041229273569432, 0.118238109507269, 0.053070226894351, -0.013323395106702, -0.005285812892181];
        if D == 10
            M = M1;
        else
            M = M2;
        end
        M = M(1:D, 1:D);
        o = O(1:D);
        y = x - repmat(o, ps, 1) + 1;
        z = (y - 1) * M;
        y_D_1 = y(:, 1:D - 1);
        y_2_D = y(:, 2:D);
        h(:, 1) = abs(sum((100 * (y_D_1.^2 - y_2_D).^2 + (y_D_1 - 1).^2), 2)) - delta;
        f = 1 / D * sum((-z .* cos(2 * sqrt(abs(z)))), 2);
    case 12
        O = [18.889635068428205, -59.265426383246485, 33.25998466165768, 20.152694275194037, -10.734106238462502, -90.85053128520764, -12.073899411249897, 59.72307696259165, -37.44193247323578, 25.963111555782035, 6.251460324561279, 41.478172862575434, 86.54258849813075, 34.94822787072172, 26.864471649916382, 79.55580868986908, -44.66218241775459, -7.305741544994362, 87.75843366209835, 33.836473236958284, 84.53385936725138, 80.89850629751817, 48.46967726645195, -82.0758049330533, -98.54273249151939, 19.55069746505636, 8.33657824668768, 88.54888769408086, -79.08282398956031, 63.254014133387614];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        f = sum(z .* sin(sqrt(abs(z))), 2);
        h(:, 1) = abs(sum((z(:, 1:D - 1).^2 - z(:, 2:D)).^2, 2)) - delta;
        g(:, 1) = sum((z - 100 * cos(0.1 * z) + 10), 2);
    case 13
        O = [69.69311714880897, 1.509803311435702, 67.6746198312362, 80.43173609273597, 80.47622449424348, 51.21092936019716, 52.7723719926014, 17.248465789326257, 52.40150903116374, 39.64846247456716, 89.86375903333635, 32.079301315169474, 43.192499277837946, 70.79294586561508, 1.48440984483988, 19.8566700417119, 29.502667246412756, 34.256788127976684, 12.643016541338264, 78.57234385195876, 26.51647349482587, 97.06430708087798, 10.180504722002471, 82.90799886855778, 63.540231382573154, 74.78243308676124, 87.20817289266436, 50.779655804893764, 43.05412185616204, 33.862234518700916];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        f = 1 / D * sum(-z .* sin(sqrt(abs(z))), 2);
        g(:, 1) = -50 + 1 / (100 * D) * sum(z.^2, 2);
        g(:, 2) = 50 / D * sum((sin(0.02 * pi * z)), 2);
        g(:, 3) = 75 - 50 * (sum((z.^2/4000), 2) - prod((cos(z ./ repmat(sqrt([1:D]), ps, 1))), 2) + 1);
    case 14
        O = [-31.718907007204272, -39.536680684207184, -46.033718058035944, -42.2004014684422, -28.331307546159135, -38.64403177375364, -11.313371899853626, -11.717383190039943, -43.345049558717875, -31.46016185891229, -35.57742732758397, -45.49638850141341, -4.177473725277878, -26.974808661067083, -46.30991533784743, -45.997883193212814, -29.479673271045964, -4.336542960830036, -43.66244285780764, -22.43896852522004, -25.89273808052249, -24.221450510218993, -30.3952886350567, -31.170730638052895, -9.859463575974534, -16.727846507426452, -44.35226340706524, -33.10843069426064, -7.175153678947718, -4.601421202670486];
        o = O(1:D);
        y = x - repmat(o, ps, 1);
        z = y + 1;
        z_D_1 = z(:, 1:D - 1);
        z_2_D = z(:, 2:D);
        f = sum((100 * (z_D_1.^2 - z_2_D).^2 + (z_D_1 - 1).^2), 2);
        g(:, 1) = sum((-y .* cos(sqrt(abs(y)))), 2) - D;
        g(:, 2) = sum((y .* cos(sqrt(abs(y)))), 2) - D;
        g(:, 3) = sum((y .* sin(sqrt(abs(y)))), 2) - 10 * D;
    case 15
        O = [-31.718907007204272, -39.536680684207184, -46.033718058035944, -42.2004014684422, -28.331307546159135, -38.64403177375364, -11.313371899853626, -11.717383190039943, -43.345049558717875, -31.46016185891229, -35.57742732758397, -45.49638850141341, -4.177473725277878, -26.974808661067083, -46.30991533784743, -45.997883193212814, -29.479673271045964, -4.336542960830036, -43.66244285780764, -22.43896852522004, -25.89273808052249, -24.221450510218993, -30.3952886350567, -31.170730638052895, -9.859463575974534, -16.727846507426452, -44.35226340706524, -33.10843069426064, -7.175153678947718, -4.601421202670486];
        M1 = [-18.785768809450733, 33.616954860437176, 26.882113915382682, -10.43306419742936, 0.944892894082476, -3.353896433259691, 3.535212733907637, 7.394276941396782, 7.790908752641235, 2.091292109983567; ...
                -0.38080580880289, 10.420967284673154, 9.347291913115678, -20.926490513724943, 11.4259031588907, 1.10563725749954, 36.87928250597037, -1.910339780463472, 7.56116849320932, -9.743066435789972; ...
                -12.341688082549489, 6.362199355273804, 8.248429939792464, 8.089256366417835, 0.069234506619011, 2.578624135957486, -0.497340218618186, -2.062722095484327, 1.430205147745766, 15.52200376094467; ...
                -17.00654251044467, -12.679306064055677, 51.65812051951116, -3.97661207806369, 3.934938475013658, -30.777202564613845, 6.146597147627116, -11.404959107806402, 12.694206030880832, -9.395143228117439; ...
                -5.484749154282662, -13.643476981518553, -20.8125786035429, 12.48063177681885, 0.844978205995699, 24.830393330514045, 33.83850518570256, -17.003569707093064, -5.293964367404844, 26.065703095424336; ...
                11.422878520470586, 10.221461943150496, -5.999478987400263, -8.935891602574142, 3.340791625151446, 3.924548854255449, -6.760571785727851, 14.016300477765046, 2.353396935795215, -15.957358828479556; ...
                14.1069797350053, -0.689797572922294, 25.92835826668488, -30.138271725378775, 12.953067028884863, -17.125782201118525, 19.122903237509483, 3.85021017121606, 14.44987126033593, -37.768641488073015; ...
                1.817162027385162, -4.52289774299815, 2.596064824368431, -3.077970366333548, 3.666238380627702, -3.142271967105208, -1.93910379576585, -1.132846020949443, -1.459397119228072, -4.385065305078107; ...
                17.05963501513677, -40.88734304067851, -9.04136854737176, 9.207816613351653, 2.483559081696921, -3.135238286666343, -0.515970843448524, -10.448164970351954, -3.97908386413912, -5.010151763870892; ...
                -2.100410473384162, 4.285743492212902, 18.13880373052391, -5.569156622351854, 0.020414928764168, -5.531568307180828, 1.750746232557792, 2.018382353850689, 8.96737078655512, -3.593654241962948];
        M2 = [2.511190264603399, 8.257741094092125, -4.576972024334265, 11.663051871013478, 1.839271199160904, -3.930477981638431, 6.381869129516557, 5.554163663846647, 3.792259995720394, -8.119579509114208, -6.749873116676933, -4.16744839268803, -5.247229107097693, 4.380091021522936, 1.636265206648646, 1.545744455341335, 6.729651169519672, -10.841704025647012, 5.27133366266056, -7.315142457952093, 5.586455189183544, 0.134360209805352, -4.757951297029205, -7.494064226166734, -5.71422876353246, -3.494974588660678, 16.86892010541546, -6.058600435639238, -11.353403083342686, -1.092357620889664; ...
                -1.176252081542598, 0.194672319059377, 9.262321627779777, -4.877620455960017, -3.013825305151295, 4.138941347418219, -4.381399078195643, -1.095599959738453, 3.362553950833766, -2.415178728944297, -6.861613142354518, -0.005940467288075, 2.135933445957106, -0.307275749657439, 9.502954614655595, 3.789220991977143, -2.76964275770075, 2.672716708411572, -3.374116812054481, -2.041106775198442, -3.340247070143979, -0.837499094352104, -5.259049047845686, -1.521493877085425, 3.560245065816806, 0.587849049777596, -8.24965720380312, 1.577881184618359, 2.56392435402041, 1.537958604481863; ...
                -1.308581228315848, -2.050371351098398, -3.874959824774145, -2.136018990593701, 0.425374281070453, 3.043654044666869, 2.852463840006697, -4.609692730685587, -2.676989994934014, 0.018654380314467, 4.1843245155883, -2.941454921101105, -9.0702547942116, -2.890167502434176, -6.517087530456076, -6.458220473167814, 5.214757843970958, -5.672828398157034, -1.291826775778004, -0.425237758250728, 2.004256913177237, 7.010207042020759, 3.245852998964355, 0.975852195193769, 1.406362603904871, -2.052462316198574, 2.872078581244381, 2.445851054572349, 1.108924529459803, -0.260629199129536; ...
                -0.691301322822554, -1.994532314862069, -8.604754485993125, -2.97610726321536, -2.546281717050659, 0.13089272819699, -2.095263510257371, 3.356968437392792, 0.259978867749323, 5.401823223841656, 3.061295803499265, 1.403978462555566, 3.459625904755164, 0.875144781306571, -4.037867043038509, 2.69814135487501, -1.046480563223284, -0.162120818498023, 3.972120681919849, -0.360095886115473, -3.590431022975543, 1.135744786203014, 6.085551336331358, -0.306597750598646, -2.349583036995845, 3.903939972739528, -1.48181865824383, -2.878395159465752, 7.258503538363769, 4.796644771310021; ...
                -0.444232081955838, -3.571385678786192, 13.286045625307453, -12.839633153682575, -4.489679872696604, 7.869013641543565, -1.965105477391064, -8.636636350365924, -0.094822649845242, -10.673493697992319, -12.53156986402604, -1.854979185138595, -4.845831775303889, -3.303193299843544, 14.504105531464209, 2.590044768433951, -6.135686158996087, -4.270904315841696, -6.861683086853831, -2.744870140116196, -5.102676391316569, 5.943125003510186, -8.766966677691988, 2.000662359536807, 0.48220557102434, 7.450887387478847, -10.45013256174983, 3.625933262996068, 4.179177543735097, 3.98247679713907; ...
                -10.464299208072154, -0.185820260985436, 6.552041396672776, -5.911945191669922, 8.168937620030086, -10.982208830632558, -3.00135846456146, 2.912065997677753, 2.671937505436929, -3.256558888247419, -1.010981945614573, -8.18916926806801, -12.001606012082647, 0.565140546704374, -6.816130902986662, 7.034212706943163, 12.40601107576485, -14.537675875626526, 1.401546347401862, 0.070761477781216, 5.173018588042309, 17.500331178638167, 3.097673254889692, -4.026635320023784, 3.007819170833911, -6.986787465181084, 6.394195915881141, 3.687826212758699, -10.500866576776128, -13.151879796730649; ...
                -5.781123825040053, -4.695427919915561, 9.384139425829048, -7.575211154097536, 8.514278328525183, -5.720630545110835, -3.828493595935516, 5.90998861394398, 0.148907769173485, -0.631185579095166, -7.572076478194538, -3.770557393047349, -8.178577514209056, -5.098256869553833, -12.07105725371895, 1.248737932444238, 0.478544192523777, -8.678825875969533, -0.946209858630089, -0.78972756845699, -8.64978321329506, 2.485419664365408, 12.153488342644684, -3.062242328783848, -0.170370275829816, -2.093524789628705, -5.15404262324049, 4.508277504607992, 1.61064781893081, -3.274879887486953; ...
                2.268818310206689, 7.300452401745146, -4.331575628327129, 10.74428874720899, 0.15049273777556, -0.522703831910356, 6.686183057924437, 3.782219973575128, 2.188704155720839, -8.966284106856413, 7.937092834912006, -1.31567415453634, -3.395220022143096, 1.559847175500902, 2.78883479224772, -2.138994752636062, 8.323858134206022, 1.103349691459627, 2.080995858068952, 3.671907915458957, 10.73018786831511, -0.786574921144261, -12.077147983799486, -3.200483300835418, 1.964680859010843, -2.657000417145831, 12.549412268552729, -5.048053145262655, -8.92560318109584, -3.291078633192861; ...
                0.041055194191982, 4.198164286592344, 0.380892004577647, -8.23942251831774, 4.779957612796264, -3.478785140983899, -4.340229693544734, -1.26961685769858, 6.146810236016467, -3.071864805992567, 0.971337912956829, -5.896120164000506, -0.757550831858382, 0.878200934289778, -1.532518943062243, 5.844371522790389, -0.837014728066397, -3.907278737140878, -2.030173016623314, 3.202676786182734, 1.470137096717735, 6.858775309836105, -5.751687072684216, 2.261109122092457, 5.446233047509159, -0.994575214031629, -4.198066474981203, -0.916283719062444, -4.341766414322003, 0.660003095340524; ...
                -4.758805234887069, -1.249096368305273, 5.230241683696193, -19.44236789411332, 3.990165558570265, -5.21678532927235, -4.960118855176376, 2.113664727176411, 0.365246740004055, 3.670941659701974, -1.914288039871711, -6.094333718753953, -2.682967627659987, 1.227422326532798, -9.433645672535167, 4.96643787530529, -3.616907241245708, -0.145552345328748, -2.280394788413511, 2.265409089297554, -5.317818474692691, 4.356958717932082, 9.75139488271248, 2.184418024240871, 4.551729219908339, -3.203937519303825, -8.161877539527412, 9.881964507838315, -0.942679393999977, -4.09075977260806; ...
                5.895714456877837, 5.673958378336709, -7.551189095277389, 8.6763663921392, -8.74212847286295, 7.876941413449155, 6.186314942878492, -1.385292259378321, 2.339350501494244, -7.303402814099851, -0.620345906721456, -3.21480044327725, -0.528558678306147, -0.327651725159052, 6.60017678920534, -4.030480514390237, -2.74819741682516, 1.131719959794813, 4.041615304275, -3.807276819902737, 7.174795405973731, -7.105910692661075, -16.16824790535485, -8.490742807482299, -1.205275569694925, -3.213783451897369, 10.19460083362542, -8.1537702193513, -3.34614228867147, 6.852576635102674; ...
                5.050755100515472, -1.015084166538332, -4.488951762662663, 3.071909362047136, -6.309214790805194, 4.607171586689359, 0.518771985931275, 2.576207604994254, -2.538951540887637, 3.871170428002043, 0.86099787829018, 9.333192517131101, 3.898241746958841, 2.045637143082407, -4.632172666627585, -3.251052343878506, -10.340844584872428, 9.938362935470167, 2.681875064667896, -0.30928871960663, -3.553804690623363, -11.909220170048043, 3.407795649838816, -0.852234992909218, 1.470543694236073, 0.018651383236502, -0.400939937078999, 1.006604199340888, 5.546567833598792, 8.936287451220219; ...
                -2.296736642073308, -7.507685960269931, 3.878804185286892, 1.927870783876082, 8.606052457582582, -4.902250427177561, -0.369415251862622, 3.771105898431047, -4.497236148553519, 6.92064424996612, 6.555606653106257, 3.979481264635631, 0.551670017289274, -1.250380372234189, -11.577926205347564, 0.98949362466787, 4.643449205576342, 0.039903009834915, 2.717889467266028, 2.628829050189848, -1.391097858187011, 2.040534828877561, 14.571897255676616, 1.64579970252636, -0.601128848469179, -0.840404796582696, -1.463197992681945, 3.202376802222665, -1.671176838446732, -3.3759766251534; ...
                -3.937515676606634, -3.139929919295693, 7.06320923587761, 1.809248475068868, 8.870247836692679, -7.116279757514643, -0.561569800957993, 1.607623766047816, -0.442980337701897, -5.392629763518957, 3.253312934476978, -0.53910491395161, -7.500926900397016, 0.980573085142957, -5.634247758036995, 2.236908157606175, 3.147822704551946, -5.937762475731414, 0.887239059660158, 3.778662703078195, 4.579851636624116, 9.68224407023739, 0.005007990083924, -2.066608587954049, -2.840100747113819, 1.07267047086035, 6.107120400203828, -2.014818439278602, -7.165823950693442, -9.272074819149603; ...
                -2.680240010855875, 0.356004349959002, -0.414456907621788, -0.067764618278143, 5.320643303727243, 0.737875437883548, 1.213668435898487, -3.145814327985767, -2.507697183673514, 2.536104038824088, 3.558431317438912, 2.131159153330951, 3.764201252276733, 0.816204397371172, -4.632956423959657, 0.184120289127522, 1.217433374070159, -4.036068485529014, 2.258556949877698, -0.910082542366675, 3.754187256312381, 7.457650756177197, 1.456847256376522, -1.608612250250221, -0.757648771963665, 3.790322347324032, 0.887040099051261, -6.027791111032598, -0.328191702726934, 0.866002766609515; ...
                6.578208237675698, 0.818410293291321, -9.288863917296439, 22.14413550757907, -5.223269252930489, 1.804141126348005, 6.924767448007314, -2.776780120617464, -2.494384185627731, 4.743636200841757, 2.69082215234061, 6.088855334101281, 0.981039450131136, -0.123672950299567, -0.140131828740133, -13.797914058713273, -1.914030716314594, 1.35605332601434, 2.48584096184779, -2.669304324669153, 2.289369793279759, -12.59957022859263, 0.93847348962723, -3.000750651813473, -6.748464919761018, -2.998991813272391, 7.50927404965129, -4.712789813740673, 2.583974262309686, 4.259407321635679; ...
                -4.302432019312597, 1.030219160973822, -0.035401401034044, -3.864603659100286, 11.181713062447539, 1.799128842154124, -4.632382202673897, -2.780991517575134, -2.531316968742212, 10.165545659183975, 1.550622641761506, 5.402782921171298, 7.066734336942432, 3.559465053224369, -7.838510786198628, 0.872794527931054, -6.729399256798964, 1.851943659950421, -3.17302307338725, 0.303477456308984, -7.294328632117977, 0.431243357642238, 12.108553118909567, 2.785512313731942, 3.951422589853138, 5.216571541524427, -14.01807799640241, 3.680618250481408, 10.312528175880152, 9.072426201364811; ...
                -5.532986492249091, 1.368157626742091, -2.996278911375891, 1.180587738377175, -1.172736098947577, -3.033440537456964, 0.240827440148848, 1.274554856316978, 3.664070614586986, 1.450239057462672, 0.43774922918318, -5.139121137322196, -2.184239731700786, -1.722673663384784, 5.003903006525603, 1.555677376370723, 4.592628073610951, 0.031529946446351, 1.962038675057533, 1.311519327333439, 2.97144042923956, 4.358628571380574, -3.02091040718656, -2.026289674016738, -2.179100342988682, 0.199561404454555, -0.642268764969934, -0.48430217469127, 0.867697193885426, -3.428256695897337; ...
                4.749688683748538, -3.013096235466324, -0.896473471506158, -5.404408901826174, 3.25190012448197, 4.700501169041437, -0.485841922084629, 2.129019854577554, -5.743986607455017, 5.05072704099386, 5.290426760843522, 10.017074714718186, 4.109783454482344, -2.171588999232304, -9.143973237995885, 2.158096752256321, -4.288300573083361, 8.440796859622568, 0.622933708201643, 0.366857770589574, -5.372666211859802, -6.422211641960874, 12.41021882450194, 3.749357041671196, 2.769912683036556, 3.508222243674678, -5.740173772592829, 6.606652001961278, 5.630677773801195, 6.253155297611987; ...
                4.559034813600619, 0.191335026648024, -9.72469888506327, 16.676435885179576, -11.815244699143054, -2.963619615334862, 2.644195062564698, -3.504534753584204, 1.539473850852911, 3.24795330924284, 4.136178478443613, -1.415042231009744, 0.180777361594801, -2.516794720186608, 6.160828524988144, -6.794575512958723, 0.075817729728995, 0.72736717628741, 1.668305542072184, 1.253458327957929, 7.270581180009739, -5.020680731171347, -10.710260791368778, -3.482314899976028, -3.159956937857408, -5.264233710547034, 7.244641579264396, -10.641144576600027, -0.028015125221679, 0.21956976936331; ...
                -2.551308504381034, -5.624763316256503, 5.82275011984547, -18.83984795424589, 2.287665332808314, 3.202650930764413, -0.143157181428193, -1.939337105017224, -7.297486396599838, 4.714811455331595, -2.285923849103187, 1.571914512358247, 1.18868883861133, 0.665125048665022, -3.62112489105088, 7.315055227559002, 2.59208112683563, -3.604968061282964, -1.269251512788574, -4.603628537664914, -6.186864603084382, 8.62584019419564, 15.640620254332642, 9.339712043883617, 0.70056492461347, 8.033185101455041, -8.984569662115023, 8.756788125840803, 3.000294638756253, 1.55270194363742; ...
                -3.861290375479539, -4.675448372631536, 9.251215593601152, -23.607840924556356, -8.695565550492798, -2.989076129194713, -4.739435400680438, 2.835678457877207, -0.098166653883445, -12.599368055638564, -10.371683803332736, -6.880266107606954, -13.323520170751154, 0.836643098136934, 5.174040794619552, 10.49263721553011, 6.802053133291294, -6.116168624020712, 0.612168202208346, -1.561678744412428, -2.961017400369882, 14.555633724082611, -2.408921040101399, 4.164763222501917, -1.288537113083328, 0.52492159991554, -0.419743809901388, 6.847306921165118, -2.417811780641292, -7.702891475003848; ...
                4.161137142387705, 1.482037717792366, 1.287113176047423, -11.780576083757202, -13.704438843176279, 2.252970644465878, -4.628978648000722, -8.44852567895537, 4.501241923053804, 3.218082210067639, -9.096692746700437, -6.359766478822383, 2.458766877052462, 2.747239663468253, 11.352826871439879, 1.690071756894771, -4.94464758404481, 1.287478245120863, -5.514465163301222, -0.436320463384376, -2.460885613501708, -2.766872615896895, -5.244256957948294, 3.839764805067356, 1.974486773795782, -3.850467595501656, -5.719184031653332, 3.112555194710462, 2.191998679485594, -0.13026077572474; ...
                2.105310692725196, 0.544816987896791, 1.846346039423678, -0.509784805488332, -8.19139781918348, -0.226849791351708, -3.085179788781892, -5.699211118481947, 3.293594390108838, -2.909444711189409, -7.764958328853763, -1.166897030507534, 3.020313808115756, 6.799166924533074, 10.7746541697421, 1.525039302686581, -7.554231411053715, -0.587013107919599, -1.300759655302306, -4.080716282648349, -2.186465568681216, -2.406484706468079, -6.958047179121224, -3.235753723041708, -4.304227928343334, 0.206370537347841, -2.625027214135385, -5.715311685851154, 1.3755895996309, 7.31396280189546; ...
                4.460614374892582, 3.19529761978484, -8.190318873976533, 17.720929604353678, 1.079903507675288, 4.032046572169589, 6.846170634331792, -2.990923968785385, -1.01384879195201, 4.210550185586089, 0.764711025819911, 6.307647053631859, 6.791811206494187, 1.358857762637734, -1.624613814301878, -10.150256933841442, -8.955086516370987, 2.41129571860055, 2.991835863170325, -2.084105485259767, -0.387882836033353, -12.037911290804784, 0.784781445004331, -3.51258593199461, -6.358051224678802, 2.354270933909405, 1.762978551917006, -7.508929712507494, 4.153956520027669, 8.430589071222315; ...
                0.112995451436564, 0.371936786139806, -7.025568330781, 9.769013689448464, -0.640793257766108, -11.677067837314976, 1.451572748927877, 1.171502164469018, 1.692647658091279, -0.881205326796837, 4.268282553052323, -5.637459471007516, -4.897450001353112, 0.171735893079777, -0.9211330468045, -2.490514871584582, 9.607046944744821, -7.206797204798768, 4.349647727744751, 4.621339140117586, 10.832359506208546, 5.100626759149631, -4.076131311364439, -0.932775487935339, 0.50265512140222, -8.6858164471001, 15.294166113376837, -5.994248698329602, -11.694453405846096, -11.801285777570579; ...
                3.672120136902007, 2.62662795338849, -6.295270647326517, -1.069859934951232, -3.811330299405138, 1.594900688552953, -0.822649421610342, -2.996102354897966, 0.011410712161871, 3.804973955584018, 0.29095969601554, 0.154412566421657, 6.009123692794804, 1.048840941857638, 0.1142053347247, 1.041139886749876, -1.766488251223224, -1.232261508678568, 3.296071326639848, -2.373608140335303, -1.250158758539599, -0.720873134553766, -0.615677318700518, 1.403259047870607, 3.005529442348132, -1.215626145907597, 0.042094269477194, -2.231879359014662, 1.611360878893429, 6.469735186892669; ...
                -5.818552929715837, -0.916929571232854, -0.366611990060092, -5.12995032472354, 6.905064130414796, -6.544579871223458, -7.16220048221164, -1.218392721965018, 0.028386972148047, 13.304659303178061, 5.212031101975595, -0.198414575621711, 2.043938045553383, -0.295480321457095, -9.738766031154933, 4.373893439532715, 5.133821298601127, -6.818797238217159, 2.032166191824439, 1.299068415608013, -5.282486677908174, 8.79704452443048, 12.849891231025046, 2.787156804154204, 6.225881805493842, -4.429387659772509, -7.4036051874247, 3.478946685666019, 1.632891481413625, -1.105751993528384; ...
                3.486878591381191, 2.633938629834198, -3.834544259817514, 6.338661537296378, 0.08440220487435, 0.891537452927858, 7.386752241464462, -3.143341265990022, 0.17569569189933, -1.189840684944929, 2.063745656499299, -3.873741753209196, 7.631037421790815, 0.870407519991694, 5.416923136109038, -4.796174802688587, -5.441484022053353, 7.113220057014851, -4.021007101784125, 1.093337823554031, -0.723713415910556, -11.778856908851662, -8.947505317275446, 0.371697970006654, -3.368349776966538, 4.657443083154591, 0.453955538023004, -1.740701616944006, -1.65220541740956, 1.029317693975664; ...
                2.46194490699664, -0.336732006333566, -0.552403825578577, -8.452671777634976, -5.633844858472623, 4.461702367049373, -3.779157969724202, 2.769245822243623, -1.006803537946152, 1.372993145527169, -2.883759917737196, 3.935344741349428, 1.588807880940938, 1.666332742486905, -3.345107247615156, 9.018878681488209, 4.966343941267382, -2.378406115718362, 4.984115491643569, -6.369451753840427, -4.810457553048149, 4.695631510723671, 8.870216904135045, 1.851266423773728, 0.47853186190453, 2.284171420203474, -1.699791507685024, 4.11585412102773, 2.079681507808699, 6.064422880045283];
        if D == 10
            M = M1;
        else
            M = M2;
        end
        M = M(1:D, 1:D);
        o = O(1:D);
        z = x - repmat(o, ps, 1) + 1;
        y = (z - 1) * M;
        z_D_1 = z(:, 1:D - 1);
        z_2_D = z(:, 2:D);
        f = sum((100 * (z_D_1.^2 - z_2_D).^2 + (z_D_1 - 1).^2), 2);
        g(:, 1) = sum((-y .* cos(sqrt(abs(y)))), 2) - D;
        g(:, 2) = sum((y .* cos(sqrt(abs(y)))), 2) - D;
        g(:, 3) = sum((y .* sin(sqrt(abs(y)))), 2) - 10 * D;
    case 16
        O = [0.365972807627352, 0.429881383400138, -0.420917679577772, 0.984265986788929, 0.324792771198785, 0.463737106835568, 0.989554882052943, 0.307453878359996, 0.625094764380575, -0.358589007202526, 0.24624504504104, -0.96149609569083, -0.184146201911073, -0.030609388103067, 0.13366054512765, 0.450280168292005, -0.662063233352676, 0.720384516339946, 0.518473305175091, -0.969074121149791, -0.221655317677079, 0.327361832246864, -0.695097713581401, -0.671724285177815, -0.534907819936839, -0.003991036739113, 0.486452090756303, -0.689962754053575, -0.138437260109118, -0.626943354458217];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        f = sum((z.^2/4000), 2) - prod((cos(z ./ repmat(sqrt([1:D]), ps, 1))), 2) + 1;
        g(:, 1) = sum((z.^2 - 100 * cos(pi * z) + 10), 2);
        g(:, 2) = prod(z, 2);
        h(:, 1) = abs(sum((z .* sin(sqrt(abs(z)))), 2)) - delta;
        h(:, 2) = abs(sum((-z .* sin(sqrt(abs(z)))), 2)) - delta;
    case 17
        O = [-0.628245703945122, 0.331024455127249, 0.402617203423807, 0.462742527496583, -0.513329779137884, 0.288191632492259, 0.41479349370103, 0.916196063289011, -0.427742767473712, 0.811971694633694, -0.202953396286476, 0.786617208861492, -0.583805982901842, 0.91666360939369, -0.602135912772221, 0.503807046950863, -0.196264987447976, -0.565579687152807, 0.540878947793462, 0.183666358669345, -0.303576255198908, -0.896405440407756, -0.101939801890135, -0.049819872322279, 0.434240825173134, 0.946552963504364, -0.32578927683003, -0.154255792477949, 0.577967633549953, -0.573697797217518];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        f = sum((z(:, 1:D - 1) - z(:, 2:D)).^2, 2);
        g(:, 1) = prod(z, 2);
        g(:, 2) = sum(z, 2);
        h(:, 1) = abs(sum((z .* sin(4 * sqrt(abs(z)))), 2)) - delta;
    case 18
        O = [-2.494401436611803, -0.306408781638572, -2.271946840536718, 0.381278325914122, 2.394875929583502, 0.418708663782934, -2.082663588220074, 0.776060342716238, -0.374312845903175, 0.352372662321828, 1.172942728375508, -0.24450210952894, 1.049793874089803, -1.716285448140795, -1.026167671845868, -1.223031642604231, 0.924946651665792, 0.93270056541258, -2.312880521655027, -0.671857644927313, -0.312276658254605, -0.973986111708943, -0.454151248193331, 2.420597958989111, 0.050346805172393, 1.050203106200361, -0.05420584346617, -0.081533357726523, -0.968176219532845, 1.682281307624435];
        o = O(1:D);
        z = x - repmat(o, ps, 1);
        f = sum((z(:, 1:D - 1) - z(:, 2:D)).^2, 2);
        g(:, 1) = 1 / D * sum((-z .* sin(sqrt(abs(z)))), 2);
        h(:, 1) = abs(1 / D * sum((-z .* sin(sqrt(abs(z)))), 2)) - delta;
end

Obj = f;
g(g < 0) = 0;
h(h < 0) = 0;
Con = [g, h];
Con(isnan(Con)) = Inf;
end
